我有從2000年到2010年的30個地區的密度數據。 我想爲每年製作交互式的等值線圖,然後使用滑塊(理想情況下)或一個單選按鈕來選擇年份。小冊子 - 隨着時間的推移互動等值線地圖
我可以在第一年獲得互動性,但不會在其他年份的圖層上獲得。 你可以看到一個工作example here,但讓我把下面的一些細節:
爲簡單起見,只考慮兩年。 blocks1995
具有不重疊的多邊形BlockA和BlockB(兩個區)和blocks1996
具有相同的塊。他們有一個叫做density
財產產生的地區分佈:
var blocks1995 = {
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" }
},
"features": [{
"type": "Feature",
"properties": { "time": 1995, "density": 3.1, "nameB": "BlockA" },
"geometry": {
"type": "Polygon",
"coordinates": [[[50.0, 29.0],[50.0, 29.99],[50.51, 29.99],[50.0, 29.0]]]
}
}, {
"type": "Feature",
"properties": { "time": 1995, "density": 1.1, "nameB": "BlockB" },
"geometry": {
"type": "Polygon",
"coordinates": [[[50.01, 30.0],[50.52, 30.0],[50.52, 30.5]]]
}
}]
};
var blocks1996 = {
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" }
},
"features": [{
"type": "Feature",
"properties": {"year": 1996, "density": 2.2, "name": "BlockA" },
"geometry": {
"type": "Polygon",
"coordinates": [[[50.0, 29.0],[50.0, 29.99],[50.51, 29.99]]]
}
}, {
"type": "Feature",
"properties": {"year": 1996,"density": 1.2,"name": "BlockB"},
"geometry": {
"type": "Polygon",
"coordinates": [[[50.01, 30.0],[50.52, 30.0],[50.52, 30.5]]]
}
}]
};
我試圖把它們添加到一個OverlayLayer
var blocks1995Layer = L.layerGroup([ L.geoJson(blocks1995)]),
blocks1996Layer = L.layerGroup([ L.geoJson(blocks1996)]);
var overlayMaps = {
"Blocks 1995": blocks1995Layer,
"Blocks 1996": blocks1996Layer
};
var map = new L.map('map', {layers:[blocks1995Layer]})
.setView([29, 50], 7);
我把這個Leaflet interactive choropleth tutorial發現樣板交互代碼,然後我添加回地圖:
geojson = L.geoJson(blocks1995, {
style: density_style,
onEachFeature: addToFeature
}).addTo(map);
L.control.layers(null, overlayMaps).addTo(map);
的問題是我加入交互只blocks1995
,但我一直沒能夠將其添加到overlayMaps
。
我可以使用一個Leaflet插件(我試過TimeSlider但也找不到它)。
另一種可能性是將兩個block1995
和block1996
變量有額外的功能year
或time
是使事情變得更容易合二爲一。這個想法應該是Leaflet按時間查詢(例如,當一個滑塊移動時)並且每年產生交互式的choropleth。
謝謝!
你可以嘗試clearLayers()當您更改年並添加新的數據。所以基本上你會在choropleth教程中擁有一個圖層,但是每次更新年份數據時都要清除它。 –
嗨@AlexParij,我應該在哪裏放置'clearLayers()'? – cd98
每年的幾何圖形會保持不變?我的意思是,每年的功能總數和位置都保持不變? – muzaffar