我正在尝试使用Leaflet API在不同的缩放层上显示不同的GeoJSON层。我可以一次加载并显示所有三个图层(尽管我实际上不希望它们一次全部显示)。我可以加载和显示它们在不同的缩放级别。
我已经设置了代码,以便在1-6缩放级别下,地图将显示一个GeoJSON图层。在7-10级,它将显示另一个,在11+级,将显示第三个。显示它们的作品。我现在要开始工作的是,如果显示了其他人,则将其关闭。从1-6移到7-10可以正常工作(这意味着它可以正确关闭1-6层),但是从7-10到11+不能正常工作(这意味着7-10层仍然存在),我无法确定找出原因(使用相同的代码)。
这是GeoJSON图层的ajax:
function getJson(defaultStyle, map, simp, geojsonLayer){
var url = 'file' + simp + '.json';
map.removeLayer(geojsonLayer);
geojsonLayer.clearLayers();
$.getJSON(url, function(data){
geojsonLayer = L.geoJson(data, {
style: defaultStyle,
onEachFeature: onEachFeature
});
geojsonLayer.addTo(map);
});
}
这是根据缩放比例调用ajax的主要功能。simpCounter最初设置为0。
map.on('zoomend', function(e) {
if (map.getZoom() >= 7 && map.getZoom() <= 10) {
if (simpCounter == 0 || simpCounter == 2) {
getJson(defaultStyle, map, 60, geojsonLayer);
simpCounter = 1;
}
} else if (map.getZoom() >= 11) {
if (simpCounter == 0 || simpCounter == 1) {
getJson(defaultStyle, map, 35, geojsonLayer);
simpCounter = 2;
}
}
});
同样,第一个过渡正确关闭了旧层,但是第二个过渡没有关闭。谢谢您的帮助。