Skip to content

Instantly share code, notes, and snippets.

@zhik
Created April 9, 2020 21:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zhik/fbd8df5dd3202c0e87abdf095c337ea6 to your computer and use it in GitHub Desktop.
Save zhik/fbd8df5dd3202c0e87abdf095c337ea6 to your computer and use it in GitHub Desktop.
timeslider example
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<link rel="stylesheet" href="https://js.arcgis.com/4.15/esri/themes/light/main.css">
<script src="https://js.arcgis.com/4.15/"></script>
</head>
<body>
<div id="viewDiv"></div>
<div id="timeSliderDiv"></div>
<script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer",
"esri/symbols/SimpleMarkerSymbol",
"esri/widgets/TimeSlider"
], function (Map, MapView, FeatureLayer, SimpleMarkerSymbol, TimeSlider) {
var map = new Map({
basemap: "topo-vector"
});
var view = new MapView({
container: "viewDiv",
map: map,
center: [-73.821366, 40.601273], // longitude, latitude
zoom: 11
});
var symbol = {
type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
style: "square",
color: "red",
size: "8px", // pixels
outline: { // autocasts as new SimpleLineSymbol()
color: [255, 255, 0],
width: 3 // points
}
};
var symbolRender = {
type: 'simple',
symbol: symbol,
label: 'label',
visualVariables: [
{
type: "size",
field: "FloodDepth",
stops: [
{
value: 20, // features where < 15% of the pop is in poverty
size: 4, // will be assigned a marker with this size in pts
label: "20" // label to display in the legend
},
{
value: 40, // features where > 35% of the pop is in poverty
size: 24, // will be assigned a marker with this size in pts
label: "more 40" // label to display in the legend
}
]
}
]
}
var layer = new FeatureLayer({
url: "https://services1.arcgis.com/0Lw2m57KEotYYFaA/arcgis/rest/services/NewGeoForm/FeatureServer/0",
renderer: symbolRender
});
map.add(layer);
var timeSlider = new TimeSlider({
container: "timeSliderDiv",
mode: "cumulative-from-start",
});
view.ui.add(timeSlider, "manual");
let timeLayerView; //blank
view.whenLayerView(layer).then(function (layerView) {
timeLayerView = layerView;
var start = new Date(2019, 06, 20)
var end = new Date(2020, 4, 1)
timeSlider.fullTimeExtent = {
start: start,
end: end
}
timeSlider.values = end;
});
timeSlider.watch("timeExtent", function (value) {
// update layer view filter to reflect current timeExtent
console.log(value)
timeLayerView.filter = {
timeExtent: value
};
});
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment