我有一個GeoJSON對象,其中包含超過2000多個功能,每個功能都屬於一個類別(即「Electrical」,「Military」等)的一部分。總共有大約類別。單張:如何從單個集合切換GeoJSON要素屬性?
下面是我收集的模式比如:
{"type":"Feature","properties":{"category":"Electrical","Name":"Plant No 1"},"geometry":{"type":"Point","coordinates":[81.73828125,62.59334083012024]}},{"type":"Feature","properties":{"category":"Electrical","Name":"Plane No 2"},"geometry":{"type":"Point","coordinates":[94.5703125,58.722598828043374]}},{"type":"Feature","properties":{"category":"Military","Name":"Base 1"},"geometry":{"type":"Point","coordinates":[104.4140625,62.91523303947614]}}
這裏是我的L.geoJson功能通過 集合迭代:
var allPoints = L.geoJson(myCollection, {
onEachFeature: function(feature, layer){
layer.bindPopup(L.Util.template(popTemplate, feature.properties));
},
"stylel": function(feature){
return { "color": legend[feature.properties.category]
}
}}).addTo(map);
哪有我分配每個category
屬性到我的L.control功能,以便用戶可以打開/關閉集合中的各種類別?我可以做到這一點,如果我讓每個類別都是一個數據集和一個單獨的geoJSOn圖層,但是完成所有38個類別的工作太多了。
我嘗試:
L.control.layers({
'Street Map': L.mapbox.tileLayer('mapbox.streets').addTo(map)
},{
'Electrical': myCollection[feature.properties.category["Electrical"]],
'Military': myCollection[feature.properties.category["Military"]]
});
有沒有更好的方式來做到這一點?謝謝!
是否也能提供onEachFeature函數內分配層,而不是自動它的一個例子嗎?這對我來說可能是一個更簡單的方法。 – redshift
好吧,我得到了這個工作(自動化),但需要一些幫助打印控件中複選框旁邊的類別名稱。現在,只有數字在那裏。但切換確實有效。謝謝! – redshift
我的不好,'疊加'應該是一個映射,而不是一個數組。我將更正上面的代碼以向您展示。 – ghybs