根据leaflet.js中地图的缩放级别使用不同的JavaScript文件

时间:2014-03-19 00:33:30

标签: javascript jquery leaflet

所以我尝试使用leaflet.js创建基于地图的可视化。我想要做的是为地图的不同缩放级别使用不同的GeoJSON文件。例如,当它被缩小时,我只想显示状态边界,当放大时,也显示县边界。我将GeoJSON作为.js文件中的JavaScript变量加载到正文中。当我只想加载一个.js文件时它工作正常,但是当我动态想要根据缩放级别更改.js文件时,我无法弄清楚如何动态创建另一个.js文件{1}}文件包含可用的区域GeoJSON数据。

我所指的传单示例是this一个。我查看了许多处理动态.js文件加载的SO问题,但无济于事。

1 个答案:

答案 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();
      }
    });
  }
});

虽然这里没有定义一些变量和函数,但就其名称而言才有意义。