我能够提出这个Leaflet web map。
我使用名为qgis2web的QGIS工具生成HTML和JS文件,该工具作为QGIS项目的输入层并生成Web文件。
然而,当我的一个图层有50,000点以上时,Javascript崩溃,导航速度变慢。我听说我可以实现一个条件,只有在用户缩放到某一点时才会加载一个图层。 我知道我需要写一些类似的东西:
if (map.getZoom() > 8 {
"layer loading code goes here"
}
但是我不知道在条件中放什么,因为我不确定层的加载在哪里发生。假设我想在用户达到8的缩放系数时加载Sells LoJack点。任何人都知道如何实现它?
答案 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。