VUE 百度地圖的獲取坐標和標注 只留有一個標注


實現一個功能,用戶點擊地圖獲取坐標,並顯示標注,但僅有一個標注

let _this = this
                // 百度地圖API功能
                map = new BMap.Map("allmap_local");
                let point = new BMap.Point(108.944, 18.475);
                map.centerAndZoom(point, 13);
                map.enableScrollWheelZoom(); //啟用滾輪放大縮小,默認禁用
                map.enableContinuousZoom(); //啟用地圖慣性拖拽,默認禁用
                //獲取坐標與圖標
                function showInfo(e) {
                    _this.kaoqinAxis = e.point.lng + ", " + e.point.lat
                    point = new BMap.Point(e.point.lng, e.point.lat);
                    let marker = new BMap.Marker(point);
                    map.addOverlay(marker); //增加點
                    window.sessionStorage.setItem('marker', JSON.stringify(point))
                    //獲取地圖上的所有標注 getOverlays()
                    var allOverlay = map.getOverlays();
                    //遍歷標注數組
                    allOverlay.forEach((ele) => {
                        //只獲取到有標注的數組,去除沒有標注的數組
                        if(ele.toString() == "[object Marker]") {
                            //判斷如果去除的經緯度有一個不一樣,那么就把之前標注的圖標去除
                            if(ele.getPosition().lng != e.point.lng || ele.getPosition().lat != e.point.lat) {
                                map.removeOverlay(ele)
                            }
                        }

                    })
                }
                //監聽選取坐標事件
                map.addEventListener("click", showInfo);

 


免責聲明!

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



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