如何判断点击的是百度地图自定义覆盖物还是覆盖物

覆盖物和地图都注册了点击事件,但点击只触发地图点击事件?_百度地图api吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:5,592贴子:
覆盖物和地图都注册了点击事件,但点击只触发地图点击事件?收藏
地图上加了个marker,并注册了点击事件,但发现每次页面一刷新,就要在marker上点击两次才会触发事件。为了测试,我给map也注册了点击事件,再刷新页面,发现点击一次的时候,map的事件触发了,但marker的事件未触发;点击第二次,则是map和marker的事件都触发了,这是怎么回事???
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或原文:摘要:很多API爱好者问我,为什么我点击的是marker,而map也会响应该事件呢?怎样才能判断,我点击的是标注,还是地图呢?下面一起来看看。
------------------------------------------------------------
先看看地图有哪些事件,查看官网,翻到:
大家看到这里的参数了麽?
其实,在点击物体时,通过这些参数就能够判断所点击的物体是什么了。
用marker举例:
先创建一个marker
//覆盖物Marker
var pmk = new BMap.Point(116..946583);
var mk = new BMap.Marker(pmk);
map.addOverlay(mk);
然后对地图添加点击事件,如果判断出来是覆盖物,就弹出相应的对话框。
map.addEventListener("click",function(e){
if(e.overlay){
alert('你点击的是覆盖物:'+e.overlay.toString());
alert('你点击的是地图');
添加一堆覆盖物,然后给每个覆盖物写点击事件。
比如我点击了多边形,就会弹出这个。
全部源代码:
&!DOCTYPE html&
&meta http-equiv="Content-Type" content="text/ charset=utf-8" /&
&title&点击事件&/title&
&script type="text/javascript" src="http://api./api?key=v=1.3"&&/script&
&!--百度地图容器--&
&div style="width:697height:550border:#ccc solid 1" id="dituContent"&&/div&
&script type="text/javascript"&
var map = new BMap.Map("dituContent");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
map.enableScrollWheelZoom();
map.addEventListener("click",function(e){
if(e.overlay){
alert('你点击的是覆盖物:'+e.overlay.toString());
alert('你点击的是地图');
//覆盖物Marker
var pmk = new BMap.Point(116.249472,39.946583);
var mk = new BMap.Marker(pmk);
map.addOverlay(mk);
//覆盖物Label
var plb = new BMap.Point(116.408149,39.958087);
var lb = new BMap.Label('我是覆盖物Label',{point:plb});
map.addOverlay(lb);
//覆盖物Polyline
var pl = new BMap.Polyline([new BMap.Point(116.250047,39.919583),new BMap.Point(116.441494,39.919583)],{strokeWeight:10})
map.addOverlay(pl);
//覆盖物Polygon
var pg = new BMap.Polygon([new BMap.Point(116.248323,39.893016),new BMap.Point(116.440344,39.893016),new BMap.Point(116.440344,39.811036),new BMap.Point(116.248323,39.811036)]);
map.addOverlay(pg);
Views(...) Comments()&>&&>&&>&&>&android百度地图标注覆盖物和覆盖物点击出现对话框的实现
android百度地图标注覆盖物和覆盖物点击出现对话框的实现
上传大小:4.78MB
本demo实现的是基于百度地图覆盖物的修改和点击以及实现自定义区域全覆盖的功能,里面的Key需要你自己申请的,以及包名。 希望对刚刚接触百度地图的人有所帮助。
综合评分:4.3(25位用户评分)
所需积分:1
下载次数:319
审核通过送C币
创建者:ch
创建者:doomlord
创建者:amixuse
课程推荐相关知识库
上传者其他资源上传者专辑
移动开发热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
android百度地图标注覆盖物和覆盖物点击出现对话框的实现
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
hubery_wkl
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:10:20 提问
百度地图覆盖物点击出现的问题
各位路过的牛牛们,我这边有个项目用到了百度地图的覆盖物点击事件,百度地图用定时器每隔10秒更新一次,然后呢,我点击覆盖物会弹出一个dialog,dialog里有取消按钮,随着时间的增加,点击“取消”按钮需要的次数就多,感觉就是那个覆盖物10秒覆盖一次,然后点击的时候有事件传递,我想把它清除掉,各位有没有遇到过相似案例,给个具体的建议,在此先谢谢
按赞数排序
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!
我想你是每次更新的时候原来的都还在,这样就一直在上边叠加。
不是 点击“取消”按钮需要的次数多。每次的点击都有效,只是你每次更新都添加了一个dialog,所以需要点击多次。
解决方法:
更新的时候把上边的dialog都清除,更新完再加上。这样就是点击一次dialog上的取消就取消。
不要把添加覆盖物的代码放在定时器里。
其他相似问题百度地图插入覆盖物坐标和点击覆盖物的坐标不一致怎么解决_百度地图api吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:5,592贴子:
百度地图插入覆盖物坐标和点击覆盖物的坐标不一致怎么解决收藏
我只是为了完成毕业设计,调用了一下百度地图的接口。我在数据库中存储了点的经纬度以及一些其他信息,建立好Market后点击这个Market发现经纬度和数据库中的不一致,该如何解决?(我只是想用ajax查询点的坐标然后添加到百度地图中,然后通过点击market获得这个点的一些信息,但是生成的坐标和点击market的坐标有偏差)建立一个Market:
var marker = new BMap.Marker(point);
map.addOverlay(marker);之后获得这个Market的经纬度:
var p = this.getPoint();
var Lng = p.
var Lat = p.
高栏港经济区,宜居宜业;诚邀您前来参观投资!
可能是因为地图缩放级别的原因,你可以在取坐标的时候,把地图放到最大级,然后再取经度纬度,这样的marker可能就没那么‘飘移’了
这样,覆盖物有个方法是getPosition(),直接
marker.getPosition()
就可以得到对应的point对象了。--请叫我雷锋
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 百度地图覆盖物 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信