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
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,我有一条可编辑的多段线,我需要知道该多段线何时更改其路径变量。是否可以在我的多段线中添加新事件(“路径改变”或类似的内容) 谢谢 问候 cadetill我认为不可能向多段线对象添加事件。请参阅,我也不确定在编辑过程中触发了哪些事件,但我假设触发了“click”、“dblclick”等。您需要运行测试以查看哪些事件表示编辑结束。假设在编辑之前保存了Polyline.getPath()返回的数组,则需要对照新的getPath()结果检查该数组,以确定它们是否已更改。由于path是一个LatLng对象

我有一条可编辑的多段线,我需要知道该多段线何时更改其路径变量。是否可以在我的多段线中添加新事件(“路径改变”或类似的内容)

谢谢

问候
cadetill

我认为不可能向多段线对象添加事件。请参阅,我也不确定在编辑过程中触发了哪些事件,但我假设触发了“click”、“dblclick”等。您需要运行测试以查看哪些事件表示编辑结束。假设在编辑之前保存了Polyline.getPath()返回的数组,则需要对照新的getPath()结果检查该数组,以确定它们是否已更改。由于path是一个LatLng对象数组,您可以使用LatLng.equals(LatLng)以及基本的array.length检查等,这样就可以使用latlngaray.join()来比较这两个数组。

我正面临这个问题。我通过将事件监听器添加到多段线路径(作为mvc数组实现)来解决这个问题。我使用了此处记录的mvc阵列事件:

设置多段线后:

var path = poly.getPath();
google.maps.event.addListener(path, 'insert_at', function(){
alert("path insert_at event");
}); 
google.maps.event.addListener(path, 'remove_at', function(){
alert("path remove_at event");
}); 
google.maps.event.addListener(path, 'set_at', function(){
alert("path set_at event");
}); 

希望有帮助。

你好,埃里克。谢谢你的回答。我已经测试了多段线中的所有事件,当路径更改时不会触发任何事件。事实上,当鼠标与点的平方交互以移动实际lat/lng或创建新路径时,不会触发任何事件。为此,我想为路径更改创建一个新事件。感谢下面的注释是使用此代码时实际发生的情况。适用于多边形tho