百度地图API 判断点击的是地图还是覆盖物

 我来答
阳光语言矫正学校
2017-06-09 · 让每个孩子都能正常讲话,是我们最大的心愿
阳光语言矫正学校
1992年开始语音病理学研究,北京、上海 、长春设有校区,功能性构音障碍、腭裂语音障碍、听力言语障碍、语言发育迟缓、口吃等多个语音矫正和训练项目,对大舌头 口吃等各种语言障碍有数万例矫正经验
向TA提问
展开全部
先创建一个Marker

//覆盖物Marker
var point = new BMap.Point(116.323524,39.989145);
var mark = new BMap.Marker(point);
map.addOverlay(mark);
1
2
3
4
1
2
3
4
然后对地图添加点击事件,如果是覆盖物就弹出相应信息

map.addEventListener("click", function(e){
if(e.overlay){
alert('您点击的是覆盖物:'+e.overlay.toString());
}else{
alert('您点击的是地图');
}
})
1
2
3
4
5
6
7
1
2
3
4
5
6
7
这里写图片描述

到此时我们只是判断了是覆盖物还是地图,而覆盖物又分为好多种
有Marker、Polygon、Circle等等
而如开题所说Marker在Circle之内,如果不想点击Marker触发click事件就需要
再次判断是何种覆盖物

如下代码即可点击Marker不触发click事件

if(e.overlay && e.overlay.toString() != '[object Circle]'){

}else{
map.clearOverlays(); //移除标注
var point_d = new BMap.Point(e.point.lng,e.point.lat)
var circle = new BMap.Circle(point_d,400,{fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});
circle.setRadius(400);
map.addOverlay(circle);
var local = new BMap.LocalSearch(map, {renderOptions: {map: map, autoViewport: false}});
local.searchNearby("公司",point_d,400);
}
景联文科技
2024-06-11 广告
景联文科技为全球数千家人工智能从业公司和高校科研机构提供安全合规的人工智能训练数据国家高新技术企业、浙江省软件企业、杭州市“青蓝计划”企业、浙江省科技型中小企业、杭州市“雏鹰计划”企业、互联网金融身份认证联盟会员单位、全国信标委生物特征识别... 点击进入详情页
本回答由景联文科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式