leaflet-timedimension
Version:
Add time dimension capabilities on a Leaflet map
88 lines (82 loc) • 2.75 kB
JavaScript
var map = L.map('map', {
zoom: 10,
fullscreenControl: true,
timeDimension: true,
timeDimensionOptions: {
timeInterval: "2015-09-01/2015-09-03",
period: "PT1H",
currentTime: Date.parse("2015-09-01T00:00:00Z")
},
timeDimensionControl: true,
timeDimensionControlOptions: {
autoPlay: true,
loopButton: true,
timeSteps: 1,
playReverseButton: true,
limitSliders: true,
playerOptions: {
buffer: 0,
transitionTime: 250,
loop: true,
}
},
center: [38.705, 1.15],
});
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var testWMS = "http://thredds.socib.es/thredds/wms/observational/hf_radar/hf_radar_ibiza-scb_codarssproc001_L1_agg/hf_radar_ibiza-scb_codarssproc001_L1_agg_best.ncd"
var testLayer = L.tileLayer.wms(testWMS, {
layers: 'sea_water_velocity',
version: '1.3.0',
format: 'image/png',
transparent: true,
styles: 'prettyvec/rainbow',
markerscale: 15,
markerspacing: 10,
abovemaxcolor: "extend",
belowmincolor: "extend",
colorscalerange: "0,0.4",
attribution: 'SOCIB HF RADAR | sea_water_velocity'
});
var proxy = 'server/proxy.php';
var testTimeLayer = L.timeDimension.layer.wms(testLayer, {
proxy: proxy,
updateTimeDimension: true
});
testTimeLayer.addTo(map);
var testLegend = L.control({
position: 'topright'
});
testLegend.onAdd = function(map) {
var src = testWMS + "?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetLegendGraphic&LAYER=sea_water_velocity&PALETTE=rainbow&colorscalerange=0,0.4";
var div = L.DomUtil.create('div', 'info legend');
div.innerHTML +=
'<img src="' + src + '" alt="legend">';
return div;
};
testLegend.addTo(map);
$('#dtp_start').datetimepicker({
inline: true,
value: new Date('2015-09-01'),
format: "c"
});
$('#dtp_end').datetimepicker({
inline: true,
value: new Date('2015-09-03'),
format: "c"
});
$("#btn_timerange").click(function(){
var startTime = new Date($('#dtp_start').val());
var endTime = new Date($('#dtp_end').val());
var newAvailableTimes = L.TimeDimension.Util.explodeTimeRange(startTime, endTime, 'PT1H');
map.timeDimension.setAvailableTimes(newAvailableTimes, 'replace');
map.timeDimension.setCurrentTime(startTime);
});
$("#btn_limitrange").click(function(){
var startTime = new Date($('#dtp_start').val());
var endTime = new Date($('#dtp_end').val());
map.timeDimension.setLowerLimit(startTime);
map.timeDimension.setUpperLimit(endTime);
map.timeDimension.setCurrentTime(startTime);
});