我想要這兩個小葉教程結合:單張 - 僅在選擇特定的層顯示以GeoJSON數據
http://leafletjs.com/examples/layers-control.html
http://leafletjs.com/examples/choropleth.html
我使用的層控制,其中用戶可以在切片提供者之間切換,也可以打開GeoJSON數據。 的jsfiddle:http://jsfiddle.net/jrzd4448/2/
var OpenStreetMap_Mapnik = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
});
var OpenStreetMap_BlackAndWhite = L.tileLayer('http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
});
// initialize map
var map = L.map('map', {
center: [37.8, -96],
zoom: 4,
layers: [OpenStreetMap_Mapnik]
});
var baseMaps = {
"Mapnik": OpenStreetMap_Mapnik,
"Black and White": OpenStreetMap_BlackAndWhite
};
loadstates = L.geoJson(statesData);
var states = {
"US States": loadstates
};
L.control.layers(baseMaps, states).addTo(map);
我希望所選擇的 「黑&白」 層時,會自動選擇以GeoJSON層( 「美國各州」)。並因此在切換回「Mapnik」時被取消選擇。 我必須使用類似this或addlayer
或jQuery函數嗎? 我想最好是不加載GeoJSON數據,直到點擊相應的圖層爲止。
我試圖建立一個不起作用的LayerGroup。
var baseMaps = {
"Mapnik": OpenStreetMap_Mapnik,
"Black and White": OpenStreetMap_BlackAndWhite
};
loadstates = L.geoJson(statesData);
var group = L.layerGroup([OpenStreetMap_BlackAndWhite, loadstates]);
var statesandlayer = {
"Group": group
};
L.control.layers(baseMaps, statesandlayer).addTo(map);
感謝您的想法!
哦,真好看。感謝您幫助n00b。 ;-) – duenni