BMap 百度地图 定位控件GeolocationControl 点击 会自动定位 标记位置 但是 这个 不是我们需要的
需要禁止 它 ?
1.首先 不用 它提供的 点击回调方法 通过dom拿到 div 造点击事件
let that = this;
let geolocationControl = new BMap.GeolocationControl({
anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
showAddressBar: false, //是否显示定位信息面板
enableAutoLocation : false, //首次是否进行自动定位
offset: new BMap.Size(6,6)//偏移距离
}) //创建一个地图定位控件
map.addControl(geolocationControl) //将控件添加到地图
setTimeout(function(){
let dom = document.getElementsByClassName("BMap_geolocationIcon")[0]
dom.addEventListener("click", function () {
console.log("--dom-->");
})
}, 500);
这个点击还是 会执行百度geo 定位 还是会弹出 需要定位权限 提示框
2.自己定义个按钮 map加载 上 自己写个 点击事件 可行
<div id="geolocationIcon" class="geolocationIcon" @click="onLocationClick"></div>
点击事情
onLocationClick() {
console.log("--onLocationClick-start->");
}
map加载 按钮
addLocationBtn(){
let map = this.map
function BtnControl(){
this.defaultAnchor = BMAP_ANCHOR_BOTTOM_RIGHT;
this.defaultOffset = new BMap.Size(16,16);//0不控制大小
}
// 集成Control类
BtnControl.prototype = new BMap.Control();
// 实现initialize方法
BtnControl.prototype.initialize = function(map){
// 创建一个DOM元素
let div = document.getElementById("geolocationIcon");
// 添加DOM元素到地图中
map.getContainer().appendChild(div);
return div;
}
// 创建控件
let btnCtrl = new BtnControl();
map.addControl(btnCtrl);
},
网友评论