Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编辑多路径多边形的多边形路径事件_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 编辑多路径多边形的多边形路径事件

Javascript 编辑多路径多边形的多边形路径事件,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我一直在告诉编辑事件我编辑了多边形的哪个路径。我需要知道这一点,因为我将多边形的坐标发布到服务器,并且需要能够告诉它我更改了多边形的哪个路径 最初,我的多边形都是单路径多边形,我需要传递给我的editPolygon方法的就是编辑顶点的索引,它会自动作为第一个参数传递。但是,我现在还需要传递正在编辑的多边形路径的索引。因为我的多边形可以有多条路径,所以我需要能够说“编辑路径1”并更新该部分 下面的代码是我尝试将pathIndex添加为参数的代码,但它的值不包含在匿名函数中。该函数的第二个参数似乎也

我一直在告诉编辑事件我编辑了多边形的哪个路径。我需要知道这一点,因为我将多边形的坐标发布到服务器,并且需要能够告诉它我更改了多边形的哪个路径

最初,我的多边形都是单路径多边形,我需要传递给我的editPolygon方法的就是编辑顶点的索引,它会自动作为第一个参数传递。但是,我现在还需要传递正在编辑的多边形路径的索引。因为我的多边形可以有多条路径,所以我需要能够说“编辑路径1”并更新该部分

下面的代码是我尝试将pathIndex添加为参数的代码,但它的值不包含在匿名函数中。该函数的第二个参数似乎也会自动设置为编辑顶点的LatLng对象。我可以看到我需要在函数中访问多边形的路径,但作用域不允许这样做

var pathIndex = polygon.getPaths().getAt(thisIndex);
        google.maps.event.addListener(polygon.getPath(), 'set_at', function(editIndex) {
            editPolygon(editIndex, pathIndex);
        });

关于如何判断正在编辑的多路径多边形的路径,有什么想法吗?如果有功能可以告诉您更改了路径中的哪个顶点,是否应该有方法告诉您多边形中的哪个路径也更改了?

这是一种可能的解决方案,但它可能不是最优雅的

在多边形中创建每条路径时,我为该多边形中的索引设置了一个属性。例如:

polygonPath.pathIndex = indexOfPathInPolygon;
现在它是MVCArray的一部分

现在我只需要正常设置事件处理程序:

google.maps.event.addListener(polygonPath, 'set_at', editPolygon);
调用editPolygon时,我可以访问该索引,因为“this”引用了我编辑的MVCArray:

function editPolygon(editIndex) {
    var editedPath = myPolygon.getPaths.getAt(this.pathIndex);

}