首页 > 技术文章 > 百度地图工具DrawingManager完成后获取坐标

yeyuqian 2020-01-16 16:09 原文

工具栏样式

var geoc = new BMap.Geocoder();
var styleOptions = {
strokeColor: "red", //边线颜色。
fillColor: "", //填充颜色。当参数为空时,圆形将没有填充效果。
strokeWeight: 3, //边的宽度,以像素为单位。
strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。
fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
strokeStyle: 'solid' //边线的样式,solid或dashed。
}

创建工具栏

var drawingManager = new BMapLib.DrawingManager(map, {
isOpen: false, //是否开启绘制模式
enableDrawingTool: true, //是否显示工具栏
drawingToolOptions: {
anchor: BMAP_ANCHOR_BOTTOM_RIGHT, //位置
offset: new BMap.Size(-25, 15), //偏离值
scale: 0.7,
drawingModes: [

BMAP_DRAWING_MARKER,//marker
BMAP_DRAWING_POLYLINE,//线
BMAP_DRAWING_POLYGON//多边形
]
},
enableCalculate: true,
polylineOptions: styleOptions, //线的样式
polygonOptions: styleOptions //多边形的样式
});

添加监听事件
drawingManager.addEventListener('polylinecomplete', polylinecomplete);

//e.getPath获取坐标。length共有多少坐标,用for循环遍历坐标

function polylinecomplete(e,overlay) {
console.log(e.getPath().length);
var points_poly=[];
for(var i=0;i<e.getPath().length;i++){
points_poly.push({"lng":e.getPath()[i].lng,"lat":e.getPath()[i].lat});
}
console.log(JSON.stringify(points_poly))
}

推荐阅读