Javascript 删除多边形的顶点google maps API v3
所以有很多关于如何删除谷歌地图多边形顶点的帖子。他们都没有为我工作-这可能是由于过时的API的他们参考。我试图限制用户可以在多边形上创建的点数。如果他们创建了超过一定数量的点,我想通过编程触发谷歌地图内置的“撤销”功能,或者用某种方法删除最后创建的顶点 当我创建用户要使用的初始多边形时,我将此事件侦听器添加到: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
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){}
}
});