百度地图多标记,弹窗自定义

这篇博客展示了如何在百度地图上添加多个自定义标注,并实现点击标注时弹出包含详细信息的窗口。通过JavaScript代码,创建了不同位置的标注,并为每个标注配置了特定的图标、地址和图片等信息。
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>百度地图,点击显示窗口自定义信息</title>
  6. </head>
  7. <body>
  8. <div id="allmap" style="width:830px;height:550px;overflow:hidden;">
  9. </div>
  10. <script type="text/javascript" src="你的秘钥"></script>
  11. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
  12. </body>
  13. </html>
  14. <script type="text/javascript">
  15.     // 百度地图API功能
  16.     var x='116.419217';
  17.     var y='39.916261';
  18.     baidu(x,y);
  19.     /*自动定位到当前城市*/
  20.     function baidu(x,y){
  21.         if(!|| !y){
  22.             function myFun(result){
  23.                 var cityName = result.name;
  24.                 map.setCenter(cityName);
  25.                 console.log(result)
  26.             }
  27.             var myCity = new BMap.LocalCity();
  28.             myCity.get(myFun);
  29.         }
  30.         map = new BMap.Map("allmap");
  31.         map.centerAndZoom(new BMap.Point(x,y), 14);
  32.         /*添加地图控制器*/
  33.         var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
  34.         map.addControl(top_left_navigation);
  35.         //启动鼠标滚动
  36.         map.enableScrollWheelZoom();
  37.         /*$.ajax({
  38.             //可以从后台拉取数据,并把select绑定change事件
  39.         });*/
  40.         var data_info = [[116.417854,39.921988,"地址:北京市东城区王府井大街88号乐天银泰百货八层","王府井","http://zixuephp.net/static/images/logo.png"],
  41.             [116.406605,39.921585,"地址:北京市东城区东华门大街","华门大街","http://zixuephp.net/static/images/logo.png"],
  42.             [116.372648,39.928658,"地址:北京西城区","西大街","http://zixuephp.net/static/images/logo.png"]
  43.         ];
  44.         for(var i=0;i<data_info.length;i++){
  45.             var myIcon = new BMap.Icon("http://developer.baidu.com/map/jsdemo/img/fox.gif", new BMap.Size(150,100));
  46.             var marker = new BMap.Marker(new BMap.Point(data_info[i][0],data_info[i][1]),{icon:myIcon});  // 创建标注
  47.             var sContent =
  48.                     "<h4 style='margin:0 0 5px 0;padding:0.2em 0'>"+data_info[i][3]+"</h4>" +
  49.                     "<img style='float:right;margin:4px' id='imgDemo' src='"+data_info[i][4]+"' width='139' height='104' title='"+data_info[i][3]+"'/>" +
  50.                     "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>"+data_info[i][2]+"</p>" +
  51.                     "</div>";
  52.             map.addOverlay(marker);               // 将标注添加到地图中
  53.             addClickHandler(sContent,marker);
  54.         }
  55.         function addClickHandler(sContent,marker){
  56.             marker.addEventListener("click",function(e){
  57.                 openInfo(sContent,e)}
  58.             );
  59.         }
  60.         function openInfo(sContent,e){
  61.             var p = e.target;
  62.             var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
  63.             var infoWindow = new BMap.InfoWindow(sContent);  // 创建信息窗口对象
  64.             map.openInfoWindow(infoWindow,point); //开启信息窗口
  65.         }
  66.     }
  67. </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值