百度地图获得多边形覆盖物的中心点

var x = 0,
     y = 0;
var path = ply .getPath();//返回多边型的点数组;ply是多边形覆盖物
for(var k = 0;k<path.length;k++){
           x=x+ parseFloat(path[k].lng);
           y=y+ parseFloat(path[k].lat);
}
x=x/path.length;
y=y/path.length;
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>百度地图绘制多边形示例</title> <style type="text/css"> html,body,#map{height:100%;margin:0;font-family:"微软雅黑";} #toolbar{position:absolute;top:10px;left:10px;z-index:9999;} #polygonList{position:absolute;top:50px;left:10px;z-index:9999;} #polygonList ul{list-style:none;margin:0;padding:0;} #polygonList li{margin-bottom:10px;} </style> </head> <body> <div id="map"></div> <div id="toolbar"> <button onclick="startDrawPolygon()">开始绘制多边形</button> <button onclick="endDrawPolygon()">结束绘制多边形</button> <button onclick="clearMap()">清除地图上的多边形</button> </div> <div id="polygonList"> <ul></ul> </div> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> <script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map("map"); var points = []; // 多边形的点数组 var polygons = []; // 地图上的多边形数组 var polygonNames = []; // 多边形名称数组 var polygonIndex = 0; // 多边形的编号 var polygonList = document.getElementById("polygonList").getElementsByTagName("ul")[0]; // 多边形列表 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别 // 启用滚轮缩放 map.enableScrollWheelZoom(true); // 添加地图点击事件 map.addEventListener("click", function (e) { if (points.length == 0) { alert("请先开始绘制多边形!"); return; } points.push(e.point); // 将点击的点加入点数组 var polyline = new BMap.Polyline(points, {strokeColor: "blue", strokeWeight: 2, strokeOpacity: 0.5}); // 创建折线 map.addOverlay(polyline); // 将折线添加到地图上 }); // 开始绘制多边形 function startDrawPolygon() { if (points.length != 0) { alert("请先结束绘制多边形!"); return; } var polygonName = "多边形" + (++polygonIndex); // 生成多边形名称 polygonNames.push(polygonName); // 将多边形名称加入名称数组 var polygonListItem = document.createElement("li"); // 创建多边形列表项 polygonListItem.innerHTML = polygonName; // 设置多边形列表项的文本内容 polygonListItem.onclick = function () { var index = polygonNames.indexOf(this.innerHTML); // 获取多边形的编号 map.setViewport(polygons[index].getPath()); // 设置地图视野显示该多边形 }; polygonList.appendChild(polygonListItem); // 将多边形列表项添加到多边形列表上 } // 结束绘制多边形 function endDrawPolygon() { if (points.length == 0) { alert("请先开始绘制多边形!"); return; } var polygon = new BMap.Polygon(points, {strokeColor: "blue", strokeWeight: 2, strokeOpacity: 0.5, fillColor: "blue", fillOpacity: 0.1}); // 创建多边形 map.addOverlay(polygon); // 将多边形添加到地图上 polygons.push(polygon); // 将多边形添加到多边形数组中 points = []; // 清空点数组 } // 清除地图上的多边形 function clearMap() { map.clearOverlays(); // 清除地图上所有的覆盖物 points = []; // 清空点数组 polygons = []; // 清空多边形数组 polygonNames = []; // 清空多边形名称数组 polygonIndex = 0; // 重置多边形的编号 polygonList.innerHTML = ""; // 清空多边形列表 } </script> </body> </html>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值