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);

 

上一篇:自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码


下一篇:关于vue和react中axios请求的拦截和响应拦截