zoukankan      html  css  js  c++  java
  • 百度地图(5)-添加标注

    这里所说的标注,就是图元对象的意思,也就是向地图上添加各种各样的对象。

    所以,标注就牵涉到两个要素:位置和要素,位置知道它在哪里,样式知道它是什么样子。

    百度地图主要通过Marker以及Overlay来进行标注的定义和添加。

    1.  添加点要素并添加点击事件。

     1 function addMarkerPoint() {
     2 
     3   var marker = new BMap.Marker(point);
     4   map.addOverlay(marker);
     5 
     6   marker.addEventListener("click", function () {
     7 
     8     var htmlContent = ["<div class='infoBoxContent'><div class='title'><strong>中海雅园</strong><span class='price'>均价43000,overlay-下面的链接无法打开,而infobox可以</span></div>",
     9       "<div class='list'><ul><li><div class='left'><img src='/bdMap/img/house3.jpg'/></div><div class='left'><a target='_blank' href='http://map.baidu.com'>中海雅园南北通透四居室</a><p>4室2厅,205.00平米,3层</p></div><div class='rmb'>760万</div></li>"
    10       ,"<li><div class='left'><img src='/bdMap/img/house1.jpg'/></div><div class='left'><a target='_blank' href='http://map.baidu.com'>中海雅园四居室还带保姆间</a><p>2室1厅,112.00平米,16层</p></div><div class='rmb'>300万</div></li>"
    11       ,"<li><div class='left'><img src='/bdMap/img/house2.jpg'/></div><div class='left'><a target='_blank' href='http://map.baidu.com'>《有钥匙 随时看》花园水系</a><p>3室2厅,241.00平米,16层</p></div><div class='rmb'>400万</div></li>"
    12       ,"<li><div class='left'><img src='/bdMap/img/house3.jpg'/></div><div class='left'><a target='_blank' href='http://map.baidu.com'>富力城D区正规楼王大三居</a><p>3室3厅,241.00平米,17层</p></div><div class='rmb'>600万</div></li>"
    13       ,"<li class='last'><div class='left'><img src='/bdMap/img/house1.jpg'/></div><div class='left'><a target='_blank' href='http://map.baidu.com'>富力城豪,身份人士的象征</a><p>4室2厅,213.90平米,25层</p></div><div class='rmb'>700万</div></li>"
    14       ,"</ul></div>"
    15       ,"</div>"];
    16 
    17     var richContent = new BMapLib.RichMarker(htmlContent.join(""),point,{
    18 
    19       "anchor": new BMap.Size(-72,-86),
    20       "enableDragging":true
    21     });
    22     map.addOverlay(richContent);
    23 
    24   });
    25   marker.enableDragging();
    26   marker.addEventListener("dragend", function(e){
    27     alert("当前位置:" + e.point.lng + ", " + e.point.lat);
    28   });
    29 }

    2. 点标注对象

    1   var marker = new BMap.Marker(point);
    2   map.addOverlay(marker);

    定义了一个 Marker 对象, point为定义的公共变量,默认为地图初始化时的中心点。

    然后在地图上通过Overlay添加Marker。这样添加一个默认点标注的功能就完成了。

    3. 富文本标注

    1 var richContent = new BMapLib.RichMarker(htmlContent.join(""),point,{
    2 
    3   "anchor": new BMap.Size(-72,-86),
    4   "enableDragging":true
    5 });
    6 map.addOverlay(richContent);

    定义了一个富标注的对象,其包含在BMapLib 中,

    引用参考代码:

    1  <script type="text/javascript" src="/bdMap/js/BMapLib/RichMarker.min.js"></script>

    4. 添加线标注

     1   var polyline = new BMap.Polyline([
     2       new BMap.Point(117.2972,31.8988),
     3       new BMap.Point(117.2872,31.9088)
     4     ],
     5     {
     6       strokeColor:"blue",
     7       strokeWeight:6,
     8       strokeOpacity:0.5
     9     });
    10   map.addOverlay(polyline);

    这里定义了一个Polyline的对象,定义了两个点的坐标,以及填充的颜色、透明度以及线宽度。

    5. 添加区域标注

     1 var circle = new BMap.Circle(point,500,{ //圆形区域
     2     strokeColor:"green",
     3     strokeWeight:2,
     4     strokeOpacity:0.7
     5   });
     6 
     7   circle.addEventListener("click",function () {
     8     var center = circle.getBounds().getCenter();
     9     addSimpleInfo(center,"你点了这个圆。");
    10   });
    11   map.addOverlay(circle);
    12 
    13   var pEnd = new BMap.Point(117.3172,31.9188); // 长方形区域
    14   var rectangle = new BMap.Polygon([
    15     new BMap.Point(point.lng,point.lat),
    16     new BMap.Point(pEnd.lng,point.lat),
    17     new BMap.Point(pEnd.lng,pEnd.lat),
    18     new BMap.Point(point.lng,pEnd.lat)
    19   ],{
    20     strokeColor:'yellow',
    21     strokeWeight:2,
    22     strokeOpacity:0.5
    23   });
    24   rectangle.addEventListener("click",function () {
    25     var center = rectangle.getBounds().getCenter();
    26     addSimpleInfo(center,"你点了这个长方形。");
    27   });
    28   map.addOverlay(rectangle);
    29 
    30   var polygon = new BMap.Polygon([ //多边形区域
    31     new BMap.Point(117.2972,31.8988),
    32     new BMap.Point(117.2625,31.8635),
    33     new BMap.Point(117.3223,31.8534),
    34     new BMap.Point(117.3568,31.85863),
    35     new BMap.Point(117.3465,31.88641)
    36   ],{
    37     strokeColor:"red",
    38     strokeWeight: 3,
    39     strokeOpacity: 0.6
    40   });
    41   polygon.addEventListener("click",function (){
    42     var center = polygon.getBounds().getCenter();
    43     addSimpleInfo(center,"你点了个多边形。")
    44   })
    45   map.addOverlay(polygon);

    6. 添加TextIcon标注

    1   map.addOverlay(new BMapLib.TextIconOverlay(new BMap.Point(117.2972,31.8988), 7));
    2   map.addOverlay(new BMapLib.TextIconOverlay(new BMap.Point(117.2625,31.8635), 15));
    3   map.addOverlay(new BMapLib.TextIconOverlay(new BMap.Point(117.3223,31.8534), 24));
    4   map.addOverlay(new BMapLib.TextIconOverlay(new BMap.Point(117.3568,31.85863), 48));
    5   map.addOverlay(new BMapLib.TextIconOverlay(new BMap.Point(117.3465,31.88641), 99));

    TextIcon 类包含在BMapLib 的库中,具体引用参考代码。

    7. 添加自定义图标

     1 /**
     2  * 添加自定义图标标注
     3  **/
     4 function addMarkerIcon(){
     5   var myIcon = new BMap.Icon("/bdMap/img/1.gif",new BMap.Size(36,36));
     6   var pt =new BMap.Point(117.3172,31.9188);
     7   var marker = new BMap.Marker(pt,{
     8     icon: myIcon
     9   });
    10   marker.enableDragging();
    11   map.addOverlay(marker);
    12 
    13   var opts = {
    14     position: pt,
    15     offset: new BMap.Size(10,10)
    16   }
    17   var label = new BMap.Label("这是一个测试用的站点",opts);
    18 
    19   marker.addEventListener("onmouseout", function(e) {
    20     map.removeOverlay(label);
    21   });
    22   marker.addEventListener("onmouseover", function(e) {
    23     console.log("泵房站点: " + e.point.lng + " , " + e.point.lat + " ; " + e.pixel.x + " , " + e.pixel.y + " | ");
    24     map.addOverlay(label);
    25   });
    26 
    27   addMarkerInfo(marker);
    28 }

    8. 页面显示

     9. 代码参考

    https://github.com/WhatGIS/bdMap

  • 相关阅读:
    JDK1.8中IndexedPropertyDescriptor的改变对BeanUtils的影响
    tomcat生成ssl证书并发布浏览器信任的https服务
    spring boot问题记录
    阿里云ecs服务器搭建以及polarDB使用说明
    关闭代理后,仍不能正常浏览或使用软件
    python基础-异常介绍
    python基础-中文编码
    python读取Excel,且存入列表中
    短信验证工作流程
    接口自动化测试框架HttpRunner使用案例
  • 原文地址:https://www.cnblogs.com/googlegis/p/14681139.html
Copyright © 2011-2022 走看看