Openlayers Overlay導致偏移


說明:

在做項目過程中,用overlay做了一個infowindow彈窗,但是在使用過程中發現一個bug:overlay.setPosition以后,會出現偏移,但是拖動一下地圖或者點擊一下地圖其他地方就回到正確的位置。

代碼如下:

            let overlay = new ol.Overlay({
                id: "overlay",
                element: "marks",
                positioning: "bottom-center",
                stopEvent: _stopEvent ? _stopEvent : false
            });        

過程:

研究發現positioning改成默認(top-left)就沒問題,緊接着試了其他幾個參數center-center,bottom-left等,凡是設了center的都會有這個問題。

#參數:'bottom-left''bottom-center''bottom-right''center-left''center-center''center-right''top-left''top-center''top-right'

推測overlay在渲染center時有點bug

解決方案:

將overlay的positioning設置在加載后,即可

            let overlay = new ol.Overlay({
                id: "overlay",
                element: "marks",
                //positioning: _position, //這里注釋掉
                stopEvent: _stopEvent ? _stopEvent : false
            });
            overlay.setPosition([_x,_y]);
            map.addOverlay(overlay);
            //解決overlay渲染center時出現偏移的問題
            overlay.setPositioning("bottom-center");    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM