Знайте, когда переменная пути полилинии изменяется - PullRequest
4 голосов
/ 23 марта 2012

У меня есть редактируемая полилиния, и мне нужно знать, когда эта полилиния изменит свою переменную пути. Возможно ли добавить новое событие ("path_change" или что-то подобное) в мою полилинию?

Спасибо

С уважением cadetill

Ответы [ 2 ]

15 голосов
/ 16 апреля 2012

Я только что столкнулся с этой проблемой. Я решил это, добавив прослушиватели событий в путь ломаной линии, который реализован в виде массива 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");
}); 

Надеюсь, это поможет.

2 голосов
/ 23 марта 2012

Не думаю, что возможно добавить событие в объект Polyline.См. справку Я также не уверен, какие события инициируются во время редактирования, но я предполагаю, что 'click', 'dblclick' и т. Д. Вызваны.Вам нужно будет запустить тесты, чтобы увидеть, какие события сигнализируют об окончании редактирования.Предполагая, что вы сохранили массив, возвращенный Polyline.getPath () перед редактированием, вам нужно будет сравнить его с новыми результатами getPath (), чтобы определить, изменились ли они.Так как path - это массив объектов LatLng, вы можете использовать LatLng.equals ( LatLng ) вместе с базовыми проверками array.length и т. Д. Может быть, что LatLngArray.join () можно использовать для сравнения двух массивов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...