Openlayers Overlay 결과 오프셋

2192 단어

설명:


프로젝트를 하는 과정에서 오버레이로 infowindow 창을 만들었지만 사용 과정에서 버그: 오버레이를 발견했습니다.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'
오버레이가 센터를 렌더링할 때 약간 버그가 있을 것 같아요.

솔루션:


오버레이의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");    

 
전재 대상:https://www.cnblogs.com/giser-s/p/11474364.html

좋은 웹페이지 즐겨찾기