【问题标题】:Using different JavaScript files based on map's zoom level in leaflet.js在 Leaflet.js 中根据地图的缩放级别使用不同的 JavaScript 文件
【发布时间】:2014-03-26 09:04:38
【问题描述】:

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

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

【问题讨论】:

    标签: javascript jquery leaflet


    【解决方案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();
          }
        });
      }
    });
    

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

    【讨论】:

      猜你喜欢
      • 2018-10-07
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      相关资源
      最近更新 更多