2016-03-07 68 views
0

我能夠拿出這個Leaflet web map如何設置加載JSON圖層的最小縮放比例?

我使用名爲qgis2web的QGIS工具生成了HTML和JS文件,該工具作爲QGIS項目的輸入圖層並生成Web文件。

但是,當我的某個圖層有50,000多個點時,Javascript崩潰並且導航速度非常慢。我聽說我可以實現一個條件,只有當用戶放大到某個點時纔會加載圖層。 我知道我需要寫類似:

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

但我不知道在裏面條件放什麼,因爲我不知道在一個層的負載發生。假設我想在用戶達到8的縮放因子時加載Sell LoJack點。任何人都知道如何實現?

回答

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使用mapmyCrowdedLayer

注意:即使使用這種技術,您的瀏覽器仍有很高的可能性仍然很難/崩潰。我真的推薦使用羣集插件。例如,參見Leaflet.markercluster

+0

這幾乎奏效。如果(map.getZoom()> = 6),我添加了這個 feature_group.addLayer(json_LoJackCoverage4JSON); }其他{ bounds_group.removeLayer(json_LoJackCoverage4JSON); feature_group.removeLayer(json_LoJackCoverage4JSON); }' 問題是這個圖層仍然存在,當頁面加載(初始縮放4)。只有當我放大並再縮小圖層時纔會隱藏。 – multigoodverse

+0

qgis2web最初沒有將其添加到映射中,或者在腳本的開頭以編程方式將其刪除。 – ghybs