我使用API v3在Google地图上动态创建了很多多边形.我没有它们的全局数组.我在创建后为每个事件分配事件,因为我需要跟踪用户对它们所做的更改.一切都很好,除了一件事.
path = polygon.getPath(); //Note, that polygon isn't a global variable
//DragEnd
google.maps.event.addListener(polygon, "dragend", function(){
SavePolygonToDb(this);
});
//Edited
google.maps.event.addListener(path, "set_at", function() {
//Now 'this' is the path array, not the polygon
SavePolygonToDb(????);
});
Run Code Online (Sandbox Code Playgroud)
不知怎的,我需要得到路径所属的多边形对象,但我无法找到它的方法.我想出的唯一解决方案是,我需要将所有多边形及其路径存储在一个数组中,然后如果发生变化,我会遍历数组并将路径值与实际值进行比较.如果某些LatLng坐标不同,则多边形会发生变化.将新值保存到后端阵列,然后继续.但我认为,必须有一些其他(更容易)的解决方案来做到这一点.
与此同时,我想出了一个简单的解决方案 为多边形定义全局数组:
var polygonArray = [];
Run Code Online (Sandbox Code Playgroud)
创建多边形时,将它们推入该数组:
polygonArray.push(polygon);
Run Code Online (Sandbox Code Playgroud)
并添加如下事件监听器:
google.maps.event.addListener(path, "set_at", function(){
for (i in polygonArray) {
if (polygonArray[i].getPath() == this) {
alert('Got it'); //polygonArray[i]
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5345 次 |
| 最近记录: |