Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 请求有关以下方面的进一步信息:谷歌地图API v3中的remove_at事件何时触发?_Javascript_Google Maps Api 3_Addeventlistener - Fatal编程技术网

Javascript 请求有关以下方面的进一步信息:谷歌地图API v3中的remove_at事件何时触发?

Javascript 请求有关以下方面的进一步信息:谷歌地图API v3中的remove_at事件何时触发?,javascript,google-maps-api-3,addeventlistener,Javascript,Google Maps Api 3,Addeventlistener,对于stackoverflow会议上提出的原始问题,似乎有一个变通解决方案: 如果我能看到如何将右键单击侦听器分配给多段线中的所有节点并在触发此右键单击事件时删除节点的代码或代码示例,我将不胜感激 我正在尝试做同样的事情,也就是在右键单击多段线中的节点时删除该节点。不幸的是,我没有在我的应用程序代码中找到正确的组合。如果您能从一个成功的解决方案中看到代码或代码示例,我将不胜感激,并将极大地帮助我 谢谢,, rtp01我不知道是否可以将事件指定给多段线节点,但您可以在节点的同一位置添加标记对象,并

对于stackoverflow会议上提出的原始问题,似乎有一个变通解决方案:

如果我能看到如何将右键单击侦听器分配给多段线中的所有节点并在触发此右键单击事件时删除节点的代码或代码示例,我将不胜感激

我正在尝试做同样的事情,也就是在右键单击多段线中的节点时删除该节点。不幸的是,我没有在我的应用程序代码中找到正确的组合。如果您能从一个成功的解决方案中看到代码或代码示例,我将不胜感激,并将极大地帮助我

谢谢,,
rtp01

我不知道是否可以将事件指定给多段线节点,但您可以在节点的同一位置添加标记对象,并将事件指定给该节点

我修改了Google的polyline-complex.html示例,既删除节点,又添加节点

在本例中,当用户在地图上单击鼠标左键,然后将标记与多段线连接时,Google会向地图添加标记。我在标记中添加了一个右键单击侦听器,用于从多段线中删除节点

下面是代码:下面是一个示例,以查看完整代码的工作情况

//after the marker is created in the addLatLng function
google.maps.event.addListener(marker, 'rightclick', removeLatLng);

诀窍是需要删除要删除的节点的数组索引。如果没有标记,右键单击事件可能无法返回节点的确切坐标,并且很难找到索引


如果您不喜欢将标记图形用作节点,可以使用自定义的*.png文件自定义图标属性以表示节点。

谢谢。他得出了这个结论。我也希望我不必走这条路,不必在多段线的每个节点上放置带有事件侦听器的标记。到目前为止,似乎尚未在新版本中实现直接从多段线删除节点。再次感谢,RTP01如果您阅读了,如果您还没有阅读,您将看到一些事件在多段线上受支持。我使用的是set_at和insert_at事件,但是再次强调,删除节点似乎不像当前在中的其他事件那样容易。感谢againIt,我不是唯一一个向google询问删除节点的人。哦,是的,我同意,我希望这个功能能很快实现。它将使许多应用程序更易于处理。
//function to remove node.
function removeLatLng(event) {
    //remove the marker from the map
    this.setMap(null);
    //get the polyline array
    var path = poly.getPath();
    //iterate over the array and remove the point that matches the marker coords.
    path.forEach(function(element, idx) {
        if (event.latLng == element) {
            path.removeAt(idx);
        }
    });
}