百度API 批量添加标注和监听标注点击事件
2014-12-05 16:08
183 查看
只是个原型。看到他们批量标注监听标注要闭包。其实2.0后可以直接监听标注事件。翻了百度地图API手册和demo N次,花了一上午终于搞定了 还是记录下来。
原理:首先添加标注点和标签,然后监听标注点标签click事件,获得标签点击事件, 得到标注点的经纬度信息
原理:首先添加标注点和标签,然后监听标注点标签click事件,获得标签点击事件, 得到标注点的经纬度信息
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>百度地图添加标注展示点</title> <script src="js/jquery-1.8.3.js"></script> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的KEY"></script> <style> .lihidden{ display:none } </style> </head> <body> <div style="width:1200px;height:375px"> <div id="allmap" style="width:800px;height:375px;float:left"></div> <div id="right" style="width:400px;height:375px;float:left"> <ul> <li class="lihidden" name='104.05434130.68075'>成都东站</li> <li class="lihidden" name='104.14805230.635457'>青羊区政府</li> <li name='104.09070430.596048'>五凝大厦</li> </ul> </div> </div> <script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map("allmap"); // 创建Map实例 map.enableScrollWheelZoom(true); var mapStyle ={ features: ["road", "building","water","land"],//隐藏地图上的poi style : "normal" //设置地图底图样式,目前支持normal(默认样式),dark(深色样式),light(浅色样式) } map.setMapStyle(mapStyle); var point = new BMap.Point(104.073394,30.639802); //创建坐标点 map.centerAndZoom(point, 12); //设置中心点和层级 var cr = new BMap.CopyrightControl({anchor: BMAP_ANCHOR_TOP_LEFT}); //设置版权控件位置 map.addControl(cr); //添加版权控件 var bs = map.getBounds(); //返回地图可视区域 cr.addCopyright({id: 1, content: '<img src="ico/items.png"/>', bounds: bs}); //设置左边提示 addpoint("104.054341","30.68075","成都东站","2"); addpoint("104.148052","30.635457","青羊区政府","3"); addpoint("104.090704","30.596048","五凝大厦","1"); //添加标注点函数 /* px 经度坐标点 py 纬度坐标点 title 标注内容 style 标注风格 1在售 2规划 3售罄 */ function addpoint(px,py,title,style) { // 根据风格参数设置ico var newpointimg =""; var newlabimg =""; switch (style) { case "1": newpointimg="ico/bzico.png"; newlabimg ="url(ico/titleico.png)"; break; case "2": newpointimg="ico/bzico2.png"; newlabimg ="url(ico/titleico2.png)"; break; default: newpointimg="ico/bzico3.png"; newlabimg ="url(ico/titleico3.png)"; break; } var newpoint = new BMap.Point(px,py); //设置新的坐标点 var newlabtitle = title; var icon = new BMap.Icon(newpointimg, new BMap.Size(15, 15), {//是引用图标的名字以及大小,注意大小要一样 anchor: new BMap.Size(7,15)//这句表示图片相对于所加的点的位置 }); var mkr = new BMap.Marker(newpoint, { icon: icon }); map.addOverlay(mkr); //添加标注 //添加标签 var label = new BMap.Label(newlabtitle,{offset:new BMap.Size(10,-18),position:newpoint}); // 创建文本标注对象 label.setStyle({ color : "white", fontSize : "12px", height : "18px", width:"100px", fontFamily:"微软雅黑", border:"0px", background:newlabimg, textAlign:"center", paddingTop:"2px", cursor: "pointer" }); map.addOverlay(label); label.addEventListener("click",attribute); //创建label监听事件 } //触发监听事件 //根据x,y坐标显示对应窗口 function attribute(e) { var p = e.target; var name = (p.getPosition().lng).toString()+(p.getPosition().lat).toString(); $("#right ul li").hide(); //隐藏所有子类 $("#right>ul>li[name='"+name+"']").show(); //取得li id 显示 必须全匹配否则火狐不兼容 } </script> </body> </html>
相关文章推荐
- ext Window点击右上角关闭(X按钮)添加监听事件
- 百度离线API获取坐标和添加标注
- js调用百度接口api接口添加标注
- 高德地图添加多个点标注的点击事件
- ArcGIS Api for javaScript 4.6 实现地图标注的点击事件
- 天地图WEB API 循环添加标注点,注册点击事件,标注增加属性
- Ext.Window点击右上角关闭(X按钮)添加监听事件
- python 批量添加的button 使用同一点击事件
- Google Maps API指南:点击添加标注
- 百度离线API获取坐标和添加标注
- 在fragment中添加点击事件,给Linearlayout添加点击监听
- RecycleView添加头部、点击事件的监听
- 百度地图:为标记添加点击事件显示标注
- 给RecyclerView的item添加点击监听事件
- Android edittext中添加图片并且监听图片的点击事件
- Google Maps API指南:点击添加标注
- java实现table添加右键点击事件监听操作示例
- Android 在XML文件中添加View点击事件的监听:OnClickListener
- 给RecyclerView的item添加点击监听事件