【百度地图API】如何判断点击的是地图还是覆盖物?

原文:【百度地图API】如何判断点击的是地图还是覆盖物?

摘要:很多API爱好者问我,为什么我点击的是marker,而map也会响应该事件呢?怎样才能判断,我点击的是标注,还是地图呢?下面一起来看看。

 

------------------------------------------------------------

先看看地图有哪些事件,查看官网类参考,翻到事件

 

大家看到这里的参数了麽?

其实,在点击物体时,通过这些参数就能够判断所点击的物体是什么了。

 

用marker举例:

先创建一个marker

//覆盖物Marker
    var pmk = new BMap.Point(116.249472,39.946583);
    var mk = new BMap.Marker(pmk);
    map.addOverlay(mk);

 

 

然后对地图添加点击事件,如果判断出来是覆盖物,就弹出相应的对话框。

    map.addEventListener("click",function(e){
        if(e.overlay){
            alert('你点击的是覆盖物:'+e.overlay.toString());
        }else{
            alert('你点击的是地图');
        }
    });

 

 

 

 

添加一堆覆盖物,然后给每个覆盖物写点击事件。

 

 

比如我点击了多边形,就会弹出这个。

 

 

 

全部源代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>点击事件</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?key=v=1.3"></script>
</head>

<body>
  <!--百度地图容器-->
  <div style="width:697px;height:550px;border:#ccc solid 1px;" id="dituContent"></div>
</body>
<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());
        }else{
            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);

</script>
</html>
时间: 2024-10-21 20:04:41

【百度地图API】如何判断点击的是地图还是覆盖物?的相关文章

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! --------------------------------------------- 一.制作魔兽地图的准备工作 其实,你只需要准备一些地图的瓦片图,就可以了. 用切片工具,把一张完整的图片(最好大一些,清楚一些),切成小片.(下周我贴这个工具的下载链接出来.留个悬念,哈哈.) 正式公布切图工具链接: http://openapi.baidu.co

急急急!C#web百度地图api调用

问题描述 急急急!C#web百度地图api调用 vs2010下开发的网页地图 实现:从SQL数据库读取全部经纬度信息,然后都标注在地图上 我想实现从数据库读取经纬度,然后把三个点都标注在地图上 已经纠结好长时间了,大家做过的来指导下 解决方案 用DataReader从数据库读取经纬度传串成一个字符串然后赋值给一个全局变量,使用服务器端标签<%%>给aspx页面的js变量,然后js依据这个js变量生成Marker while(dr.Read()) { s+=",{lng:"+

百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题:  百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和DOM编程里的事件模型一样,百度地图API也提供了类似的事件机制.本文介绍了事件监听的添加和移除方法,this指针和事件参数的使用以及绑定事件监听函数中涉及的闭包问题,最后分享了一个用来增强地图API事件机制的开源项目. 事件添加和移除 我们最简单的事件开始,下面的代码示例给map对象添加了click事件的监

【百度地图API】手机浏览器抓包工具及其使用方法

原文:[百度地图API]手机浏览器抓包工具及其使用方法 摘要:为了测试地图API在手机浏览器上的性能,需要给手机浏览器设置代理.通过代理,我们可以在PC上获取到抓包数据.进而对性能做进一步分析.   ------------------------------------------------------ 一.手机浏览器抓包工具 Paros 3.2.13   二.如何配置 1.将电脑和手机连到同一个wifi环境中 2.找到电脑的IP 可以点击网卡图标,找到IP信息 也可以在cmd下,使用ipc

百度地图推出团购地图API 助力团购网站轻松导入地图服务

中介交易 SEO诊断 淘宝客 云主机 技术大厅 记者日前获悉,百度地图正式推出了团购地图API,作为一套生成团购网站地图展现的工具,团购地图插件包含了坐标点采集.团购页面地图展示等功能,这意味着今后万千团购网站将能轻松的导入地图服务,给广大网民带来更好的团购体验,增加团购网站的用户流量和黏性. 来自百度官方的说法是,百度团购地图API采用了iframe结构,使开发人员可以进行更简洁的代码管理,并及时更新团购地图功能;采用的JavaScript这一客户端脚本语言,有着更灵活的程序扩展性,同时带来更

百度地图api调用-c++调用百度地图调试错误如何处理

问题描述 c++调用百度地图调试错误如何处理 vsc++调用百度地图 Api的程序为何调试时没有地图出现 只有界面出来 解决方案 先看看你的百度API返回值什么,是否返回有用的信息 解决方案二: 没有返回任何信息 只有一个空白界面 解决方案三: appkey信息是否正确,检查一下

Android 百度地图API 定位 导航 代码

前几天百度举办了百度世界大会,可惜没去参加,之前参加了百度的开发者大会,在会上也了解了百度的产品,百度现在朝着平台化的方向在发展,感觉很不错,也试用了百度的产品,现在就用着百度的网盘,今天看了下百度地图的开放API,然后做了个Demo,这里分享出来.如果应用主要针对国内市场的话,用百度地图还是一个比较不错的选择.另外,百度还有一个PCS(Personal cloud storage)个人云存储,我比较感兴趣,之后也会继续研究,然后做个Demo分享给大家.今天就先看看这个利用百度地图定位并实现目的

【视频】2008 Google开发者日--如何使用地图API

本讲座将从技术层面介绍地图API.地图API背后有哪些关键的概念? 这些概念为什么很重要?地图API是用什么技术构造的? 地图API有什么功能? 这些功能如何使用?地图API与mashups, gadgets和其他AJAX API又有什么样的联系? 这些问题都将在讲座里一一讲解. 孟熙 孟熙, Google资深软件工程师,毕业于德国洪堡大学.2004年加入谷歌.是2005年首版谷歌地图的核心开发人员之一.谷歌地图革命性的用户界面从此改写了整个业界在线电子地图的制作和方向.孟熙是谷歌地图前端团队最

substring-调用 百度地图api的 时候 放大地图 点击一个景点的时候 IE报:

问题描述 调用 百度地图api的 时候 放大地图 点击一个景点的时候 IE报: 调用 百度地图api的 时候 放大地图 点击一个景点的时候 IE报:无法获取未定义null引用的属性 "substring " 谷歌报:Cannot read property 'substring' of undefined点确定却又正常了 我试了 网上说的把调用百度地图的 代码放到div容器里 结果是一样的 怎么解决? 解决方案 具体错误发生的行是什么这个错误导致的原因是因为你的字符串变量为空,或者被设