gpt4 book ai didi

google-maps - 数组包含谷歌地图绘图管理器中多边形的纬度和经度

转载 作者:行者123 更新时间:2023-12-04 11:50:09 24 4
gpt4 key购买 nike

这是在 Google map 上添加绘图管理器以供用户绘制多边形、圆形、矩形等的最简单方法。

代码:

<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>

我的问题:你好像用这个工具画了一个多边形。如何读取或创建包含此多边形经纬度的数组?

已编辑:还有其他内容,也许用户在创建后编辑多边形,因此编辑后也应该可以读取此数组,我认为我们不能通过单击 map 使用“e”参数。

最佳答案

创建一个包含多边形的全局数组

var polygons = [];

然后,在 polygoncomplete 事件中填充数组:

google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) {
polygons.push(polygon);

为了让用户可以在创建后编辑多边形,您必须在 polygonComplete 事件结束时调用 setEditable

polygon.setEditable(true);

如果你需要读取多边形顶点的所有纬度/经度,你可以使用这个代码示例:

var polygonBounds = polygon.getPath();
var coordinates = [];

for(var i = 0 ; i < polygonBounds.length ; i++)
{
coordinates.push(polygonBounds.getAt(i).lat(), polygonBounds.getAt(i).lng());
}

关于google-maps - 数组包含谷歌地图绘图管理器中多边形的纬度和经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19487751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com