![](/img/trans.png)
[英]Circle Geometry Feature not displaying when using OpenMaps / OpenLayers
[英]Restyle feature when overzooming OpenLayers 4
在上圖中,左側是使用openlayers 4.6.4自行創建的本地mbtiles數據的渲染。 右側是顯示相似內容的傳單。
我遇到的問題是,在對左側圖像的數據進行過縮放時,我試圖使道路的寬度(以橙色顯示)保持一致或放大,該圖像的最大圖塊細節級別為14。最后,它應該看起來像右邊一樣。
在OpenLayers的樣式中,我目前正在根據縮放將以下更改應用於行的寬度:
var zoomAdjustment = Math.max(0, (map.getView().getZoom() - 13) * 2); width += zoomAdjustment;
盡管需要進行調整,但這是可行的。 但是,問題在於,達到zoomLevel 14后不會重新加載或重新設置樣式,因此無論zoomLevel 14之后是否放大或縮小,它都將保持一致的大小,而不是變大以表示道路本身的大小。
有沒有一種方法可以“重畫”特征以某種方式放大它,但保持其位置和幾何形狀不變?
到目前為止,我已經完成了以下操作:-研究了樣式和功能以及如何重繪它們,但是,閱讀API的相關知識對我來說再明智不過了。 -嘗試縮放寬度,但是如上所述,在找不到瓦片后,它不會繼續縮放(由於數據加載方式的本質,這是合乎邏輯的)
我現在將嘗試觀察地圖,並在更改后將其縮放到14以上,以手動覆蓋要素的樣式。
實際上,這就像每次通過觀察地圖來調整縮放比例來覆蓋樣式一樣簡單:
map.on('change', () => {
var zoomAdjustment = Math.max(0, (map.getView().getZoom() - 14) * 2);
width += zoomAdjustment;
map.getLayers().forEach((layer) => {
layer.setStyle(style);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.