我是Open-layers 3的新用戶。我有我的網頁,圖層OSM由OL3添加,並且我添加了ol的任何矢量圖層(標記) .layer.Vector。當縮放級別改變時,我需要更改矢量圖層。請Openlayers 3:當縮放級別改變時更改向量圖層
回答
圖層有setVisible()/ getVisible()方法,因此您可以在特定的縮放級別觸發圖層上的圖層。 Zoom可以在'moveend'事件上派生,然後你可以觸發一個特定的圖層是否可見。
可以從獲得縮放map.getView()。getZoom()(將返回縮放的數字),然後告訴您需要顯示或隱藏的圖層。
圖層保存在一個Collection(array)對象中,可以通過調用map.getLayers()獲得,然後您可以選擇要顯示/隱藏哪一個。當我添加圖層時,我會記錄它們的順序,以便我可以直接得到一個圖層。
map.getLayers()。項(0)將返回我加入到層中的第一層,(1)所述第二等
我感謝你的答案,我能夠通過ol.source.Cluster解決問題。謝謝 –
**警告**,我最近開始使用羣集(請參閱我的其他問題),發現對於大型數據集,它們可能會很慢,所以我現在已經關閉它們。對於小尺寸的數據集,它們應該沒問題。 – pconnell99
非常感謝 –
可以甚至直接與創建的矢量層的限定最大和最小分辨率。
類ol.layer.Vector具有選項:
- minResolution:最小分辨率(含),在該該層將是可見的。
- maxResolution:最大分辨率(不含),低於該分辨率時,此圖層可見。
如果你不知道一個地圖視圖分辨率可以使用方法map.getView()。getResolution()找出它
我確實嘗試過,但它似乎不起作用。我已發佈[有關此問題](https://gis.stackexchange.com/q/239044/981)。 – awe
- 1. 更改地圖中的縮放級別
- 2. 根據縮放級別更改圖標
- 3. 更改高地圖的縮放級別
- 4. 如何更改Openlayers 3中縮放控件的圖標?
- 5. 檢查縮放級別是否改變
- 6. 按縮放級別改變半徑
- 7. 設置樣式縮放級別開放層3
- 8. 更改子窗口的縮放級別
- 9. 更改顯示縮放級別
- 10. Openlayers 3 - 在地圖上限制可能的縮放級別
- 11. 更改地圖點的位置不改變縮放級別或跨度
- 12. openlayers pan縮放欄修改
- 13. 如何更改/修改3級別層次結構
- 14. 更改alpha級別的javascript縮略圖
- 15. OpenLayers更改控制層
- 16. Mapbox GL JS:更改縮放級別上的彈出偏移量
- 17. Leaflet ::根據縮放級別改變圖標
- 18. OpenLayers 3 - 在動畫之後縮放到特定級別
- 19. 更改Fusiontable的地圖可視化縮放級別
- 20. 更改Google地圖在Jquery中的縮放級別
- 21. 根據縮放級別更改列數:HighChart(列圖類型)
- 22. 更改默認縮放級別2地圖
- 23. 縮放iPhone的方向更改視圖
- 24. 頁面更改時重置瀏覽器縮放級別
- 25. OpenLayers:更改矢量圖層後如何刷新地圖
- 26. Openlayers WMS圖層沒有正確縮放
- 27. Mapbox for Android:根據當前縮放級別更改地圖輸入
- 28. 更改主音量級別
- 29. 如何根據縮放級別加載圖層?
- 30. openlayers 3 - 加載具有最高縮放級別tile的TileLayer,但在所有縮放級別都顯示
我建議最好解釋你想要什麼去做。 「我需要改變矢量圖層」太模糊了。 – erilem
我有兩個文件geojson表示矢量圖層。我喜歡這樣做:如果在第一個文件geojson上放大矢量的縮放級別<12,並且如果大於13,我喜歡張貼第二個文件geojson的矢量。我的願望是類似這個鏈接的演示http://acuriousanimal.com/code/animatedCluster/但它在Openlayers 2 –