所以我尝试使用leaflet.js创建基于地图的可视化。我想要做的是为地图的不同缩放级别使用不同的GeoJSON文件。例如,当它被缩小时,我只想显示状态边界,当放大时,也显示县边界。我将GeoJSON作为.js
文件中的JavaScript变量加载到正文中。当我只想加载一个.js
文件时它工作正常,但是当我动态想要根据缩放级别更改.js
文件时,我无法弄清楚如何动态创建另一个.js
文件{1}}文件包含可用的区域GeoJSON数据。
我所指的传单示例是this一个。我查看了许多处理动态.js
文件加载的SO问题,但无济于事。
答案 0 :(得分:1)
我使用map.on()
属性来实现此目的。代码如下:
map.on('zoomend', function(e) {
if (map.getZoom() > 5) {
$.getScript('js/reassign_districts.js', function(data, textStatus, jqxhr) {
console.log(textStatus); // Success
console.log("Districts loaded.");
if (jqxhr.status == 200) {
map.removeLayer(geojson);
loadGeoJson();
}
});
} else if (map.getZoom() <= 5) {
$.getScript('js/reassign_states.js', function(data, textStatus, jqxhr) {
console.log(textStatus); // Success
console.log("States loaded.");
if (jqxhr.status == 200) {
map.removeLayer(geojson);
loadGeoJson();
}
});
}
});
虽然这里没有定义一些变量和函数,但就其名称而言才有意义。