根据Google Maps JavaScript API v3 documentation,google.maps.Polygon
类的getPath()
函数返回MVCArray
。在简单的情况下,Polygon的路径可以是LatLngs
的单个数组,在传递到google.maps.Polygon类的MVCArray
函数时会转换为setPath()
类型。
上述案例是我目前正在处理的案件。我传入一个LatLngs
数组,当我在我的Polygon对象上调用MVCObject
时,返回(我假设的)getPath()
。我的问题是:如何将此MVCObject
转换回形成Polygon形状的LatLngs
数组?我是否缺少一些内置的Google Maps API v3方式?我觉得必须有某种明显的内置转换功能,或API中的某些东西让我不知所措。
任何帮助都将不胜感激。
答案 0 :(得分:26)
当您致电Polygon.getPath()
api-doc时,返回的是MVCArray
api-doc个LatLng
个实例,代表Polygon
的第一条路径。您可以通过两种方式直接联系MVCAarray
的成员:
MVCAarray.getArray
,它将返回包含Array
成员的基础JavaScript LatLng
。MVCArray.getAt( index )
,它将返回MVCArray
中该索引处的任何内容(本例中为LatLng
)。这为您提供了一种设置JavaScript for
循环来迭代数组成员的方法。您还可以使用MVCArray
功能间接使用forEach(callback:function(*, number))
的成员。在这种情况下,您必须传递一个接受两个参数的回调函数:
MVCArray
。答案 1 :(得分:0)
var polygonBounds = polygon.getPath();
var bounds = [];
for (var i = 0; i < polygonBounds.length; i++) {
var point = {
lat: polygonBounds.getAt(i).lat(),
lng: polygonBounds.getAt(i).lng()
};
bounds.push(point);
}