知道折线路径变量何时发生变化

时间:2012-03-22 20:12:14

标签: javascript google-maps google-maps-api-3

我有一条可编辑的折线,我需要知道这条折线何时改变它们的路径变量。可以在我的折线中添加一个新事件(“path_change”或类似的东西)吗?

由于

此致 cadetill

2 个答案:

答案 0 :(得分:15)

我刚刚遇到这个问题。我通过将事件侦听器添加到折线路径来解决它,该路径实现为mvc数组。我使用了这里记录的mvc数组事件: https://developers.google.com/maps/documentation/javascript/reference#MVCArray

设置折线后:

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");
}); 

希望有所帮助。

答案 1 :(得分:2)

我认为不可能向Polyline对象添加事件。请参阅reference我也不确定在编辑期间触发了哪些事件,但我认为触发了“click”,“dblclick”等。您需要运行测试以查看哪些事件表示编辑结束。假设您在编辑之前保存了Polyline.getPath()返回的数组,您需要根据新的getPath()结果进行检查,以确定它们是否已更改。由于path是LatLng对象的数组,您可以使用LatLng.equals( LatLng ),以及基本的array.length检查等。可以使用LatLngArray.join()来比较两者阵列。