Use*_*Mat 2 google-maps latitude-longitude google-maps-api-3
这是在Google地图上添加绘图管理器以便用户绘制多边形,圆形,矩形等的最简单方法.
码:
<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&libraries=drawing"></script>
<script>
function initialize()
{
var map = new google.maps.Map(document.getElementById('map'), {zoom: 12, center: new google.maps.LatLng(32.344, 51.048)});
var drawingManager = new google.maps.drawing.DrawingManager();
drawingManager.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div style="width:1024px; height:768px;" id="map"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的问题:似乎你用这个工具绘制了一个多边形.如何读取或创建包含此多边形的纬度和经度的数组?
编辑:还有别的,也许用户在创建后编辑多边形,所以应该可以在版本之后读取这个数组,我认为我们不能通过点击地图来使用"e"参数.
Ale*_*exB 14
创建一个包含多边形的全局数组
var polygons = [];
Run Code Online (Sandbox Code Playgroud)
然后,在polygoncomplete事件中填充您的数组:
google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) {
polygons.push(polygon);
Run Code Online (Sandbox Code Playgroud)
为了让用户在创建后编辑polgons,您必须setEditable在polygonComplete事件结束时调用
polygon.setEditable(true);
Run Code Online (Sandbox Code Playgroud)
如果你需要读取多边形顶点的所有lat/lng,你可以使用这个代码示例:
var polygonBounds = polygon.getPath();
var coordinates = [];
for(var i = 0 ; i < polygonBounds.length ; i++)
{
coordinates.push(polygonBounds.getAt(i).lat(), polygonBounds.getAt(i).lng());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6713 次 |
| 最近记录: |