百度地图实现鼠标绘制多边形并获取所有点坐标

百度地图开放平台http://lbsyun.baidu.com/

这里使用的是Javascript API http://lbsyun.baidu.com/index.php?title=jspopular

实现鼠标绘制多边形主要用到百度地图JavaScript开源库鼠标绘制工具条库(http://lbsyun.baidu.com/index.php?title=open/library),提供鼠标绘制点、线、面、多边形(矩形、圆)的编辑工具条的开源代码库。且用户可使用JavaScript API对应覆盖物(点、线、面等)类接口对其进行属性(如颜色、线宽等)设置、编辑(如开启线顶点编辑等)等功能。基于Baidu Map API 1.4。

注:JavaScript 开源库不支持极速版JavaScript API。

 

好了 ,上面介绍完了,那我们可以开始搞。先看下效果图,

百度地图实现鼠标绘制多边形并获取所有点坐标_第1张图片

 这里绘制了四个坐标点,全部打印出来如下

百度地图实现鼠标绘制多边形并获取所有点坐标_第2张图片

 

 

准备工作,先引入百度地图API文件

复制代码




复制代码

 

html代码

复制代码

复制代码

 

javascript代码

 

复制代码

// 百度地图API功能
    var map = new BMap.Map('map');
    var poi = new BMap.Point(116.307852,40.057031);
    map.centerAndZoom(poi, 16);//设置中心点坐标和地图级别
    map.enableScrollWheelZoom(); //启用鼠标滚动对地图放大缩小
    
   //鼠标绘制完成回调方法   获取各个点的经纬度
    var overlays = [];
    var overlaycomplete = function(e){
        overlays.push(e.overlay);
        var path = e.overlay.getPath();//Array 返回多边型的点数组
        for(var i=0;i 
  

复制代码

 

以上鼠标绘制主要用到类BMapLib.DrawingManager,具体参数使用可查看http://api.map.baidu.com/library/DrawingManager/1.4/docs/symbols/BMapLib.DrawingManager.html

需要注意的是drawingToolOptions可选参数里面的drawingModes,工具栏上可以选择出现的绘制模式,将需要显示的DrawingType以数组型形式传入,如[BMAP_DRAWING_MARKER, BMAP_DRAWING_CIRCLE] 将只显示画点和画圆的选项,总共有以下五个常量,可根据自己情况选择是否添加显示

BMAP_DRAWING_MARKER 画点
BMAP_DRAWING_CIRCLE 画圆
BMAP_DRAWING_POLYLINE 画线
BMAP_DRAWING_POLYGON 画多边形
BMAP_DRAWING_RECTANGLE 画矩形

 

在回调overlaycomplete这个地方e.overlay.getPath()返回多边型的点数组Array,参考类Polygon

http://developer.baidu.com/map/reference/index.php?title=Class:覆盖物类/Polygon

 

如果知道某个地理位置名称,想要一开始就根据这个地理位置名称去设置中心点坐标,可以通过对地址解析获取经纬度然后再设置中心点坐标

复制代码

// 创建地址解析器实例
    var myGeo = new BMap.Geocoder();
    // 将地址解析结果显示在地图上,并调整地图视野
    myGeo.getPoint("北京市海淀区上地10街", function(point){
        if (point) {
            map.centerAndZoom(point, 16);
            map.addOverlay(new BMap.Marker(point));
        }else{
            alert("您选择地址没有解析到结果!");
        }
    }, "北京市");

复制代码

 


文章出处:https://www.cnblogs.com/fozero

你可能感兴趣的:(百度地图api,百度地图api)