我正在尝试检索折线和多边形的latlng坐标。在完成任一对象的绘制后,我想将latlng存储在数据库中,但是现在我只是想在textarea中显示latlng。我已经足够容易地完成了标记,矩形和圆形,但折线和多边形的术语令我感到困惑。当我完成绘图时,我使用addDomListener(drawingManager,'polygoncomplete',...用于多边形,然后遍历我绘制的所有多边形。对于每个多边形,我然后迭代它的coords数组。我搜索了这个论坛数据库并在Google文档页面上尝试了Bermuda三角形示例。 Bermuda Example 我已多次阅读文档,无法看到我所缺少的内容。任何帮助表示赞赏。
//Save polygons data to text area
var polygons = [];
google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) {
polygons.push(polygon);
});
google.maps.event.addDomListener(savebutton, 'click', function() {
document.getElementById("savedatapolygon").value = "";
for (var i = 0; i < polygons.length; i++) {
var polygonBounds = polygons[i].getPath();
var xy;
// Iterate over the polygonBounds vertices.
for (var i = 0; i < polygonBounds.length; i++) {
xy = polygonBounds.getAt(i);
contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng();
}
document.getElementById("savedatapolygon").value += "polygon(";
document.getElementById("savedatapolygon").value += contentString;
document.getElementById("savedatapolygon").value += ")";
}
});
答案 0 :(得分:16)
Google Maps Polygon类返回MVCArray。您需要使用MVCArray的forEach
方法来循环播放它。
var polygonBounds = polygons[i].getPath();
// Iterate over the polygonBounds vertices.
polygonBounds.forEach(function(xy, i) {
contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng();
});
document.getElementById("savedatapolygon").value += "polygon(";
document.getElementById("savedatapolygon").value += contentString;
document.getElementById("savedatapolygon").value += ")";