如何设置加载JSON图层的最小缩放?

时间:2016-03-07 19:00:16

标签: javascript json leaflet

我能够提出这个Leaflet web map

我使用名为qgis2web的QGIS工具生成HTML和JS文件,该工具作为QGIS项目的输入层并生成Web文件。

然而,当我的一个图层有50,000点以上时,Javascript崩溃,导航速度变慢。我听说我可以实现一个条件,只有在用户缩放到某一点时才会加载一个图层。 我知道我需要写一些类似的东西:

 if (map.getZoom() > 8 {  
 "layer loading code goes here"
}

但是我不知道在条件中放什么,因为我不确定层的加载在哪里发生。假设我想在用户达到8的缩放系数时加载Sells LoJack点。任何人都知道如何实现它?

1 个答案:

答案 0 :(得分:1)

拥有数百到数千点的图层肯定会让您的浏览器遇到困难/冻结/崩溃。

您应该对群集和/或画布Leaflet plugins感兴趣。

如果您想坚持使用该技术仅在给定缩放级别以上显示图层,您可能需要执行以下操作:

map.on("zoomend", function () {
  if (map.getZoom() >= 8) {
    map.addLayer(myCrowdedLayer);
  } else {
    map.removeLayer(myCrowdedLayer);
  }
});

请参阅adding and removing layers to map的宣传单文档。

当然,你必须匹配qgis2web用于map myCrowdedLayer的内容。

注意:即使采用这种技术,您的浏览器仍然很有可能遇到困难/崩溃。我真的建议使用群集插件。例如,请参阅Leaflet.markercluster