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/8/svg/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 删除多边形的顶点google maps API v3_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 删除多边形的顶点google maps API v3

Javascript 删除多边形的顶点google maps API v3,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,所以有很多关于如何删除谷歌地图多边形顶点的帖子。他们都没有为我工作-这可能是由于过时的API的他们参考。我试图限制用户可以在多边形上创建的点数。如果他们创建了超过一定数量的点,我想通过编程触发谷歌地图内置的“撤销”功能,或者用某种方法删除最后创建的顶点 当我创建用户要使用的初始多边形时,我将此事件侦听器添加到: google.maps.event.addListener(myPolygon.getPath(), 'insert_at', function(event){ var numPoi

所以有很多关于如何删除谷歌地图多边形顶点的帖子。他们都没有为我工作-这可能是由于过时的API的他们参考。我试图限制用户可以在多边形上创建的点数。如果他们创建了超过一定数量的点,我想通过编程触发谷歌地图内置的“撤销”功能,或者用某种方法删除最后创建的顶点

当我创建用户要使用的初始多边形时,我将此事件侦听器添加到:

google.maps.event.addListener(myPolygon.getPath(), 'insert_at', function(event){
  var numPoints = myPolygon.getPath().length;

  if(numPoints == 5){
    myPolygon.getPath().removeAt(4);
  }
});
这最终会从多边形中删除一个点(不一定是最后创建的点)。有时会导致以下错误:

未捕获的TypeError:无法读取未定义的属性“b”


我尝试在多边形上使用“单击”侦听器,但当用户创建新顶点时,单击事件不会触发。它仅在单击实际多边形形状时触发。

我猜您使用的是具有自动完成功能的路径(第一个板条不等于最后一个板条)

当您试图从自动完成的路径中删除最后一个LatLng时,似乎存在错误

此错误不会阻止您删除该点,错误会在稍后发生(我猜当API更新可编辑多边形的UI时)。 您可以简单地使用try/catch语句来绕过此错误

与删除点的位置相关:新创建的点不会插入到路径的末端,而是插入到放置点之间。 在点1(索引0)和点2(索引1)之间插入点时,新创建的点将具有索引1

您可以使用回调的第一个参数来检索此索引

总结:



那是我的问题。删除点时,自动完成的多边形无法正常工作,但只要最后一个点等于第一个点,它就可以正常工作。不起作用,但起作用。对不起,我不得不收回。如果第一个点与最后一个点相等,则如果有人在编辑过程中选择移动第一个点或最后一个点,则仍然无效。e、 g.我的链接中的三角形有4个点,当有人移动第一个/最后一个点,然后在它们之间插入一个新点时,会抛出错误。当我捕捉到错误时,效果非常好。感谢您的洞察力。:)
google.maps.event.addListener(myPolygon.getPath(), 'insert_at', function(index){
  if(this.getLength() > 4){
    try{
      this.removeAt(index);
    }catch(e){}
  }
});