我有一条可编辑的折线,我需要知道这条折线何时改变它们的路径变量。可以在我的折线中添加一个新事件(“path_change”或类似的东西)吗?
由于
此致 cadetill
答案 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()来比较两者阵列。