Google Maps API V3: прослушиватели событий диспетчера чертежей запускаются несколько раз

Я использую Google Maps API v3. У меня есть прослушиватель событий класса диспетчера чертежей следующим образом

 google.maps.event.addListener(drawingManager, 'polylinecomplete', function(polyline) {
      var val = (polyline.getPath().getArray());

   });

но проблема в том, что это событие запускается несколько раз. Есть ли способ обойти это. Мне нужен четный, который запускается только один раз после завершения рисования.


person tmjam    schedule 19.11.2011    source источник


Ответы (1)


Вероятно, вы зарегистрировали прослушиватель событий несколько раз.

Слушатель polylinecomplete запускается, когда ломаная линия завершена. Единственный способ, которым событие запускается несколько раз, — это когда вы зарегистрировали больше таких слушателей.

Всякий раз, когда вы вызываете google.maps.event.addListener(), регистрируется новый слушатель. Проверьте, где находится регистрационный код слушателя и сколько раз он вызывается.

person Tomik    schedule 19.11.2011
comment
У меня также есть много других слушателей, но конкретно эта функция обратного вызова запускается несколько раз, я предполагаю, что эта функция обратного вызова запускается, например, только для события polylinecomplete. Если у меня полилиния из двух Gpoints, то эта функция срабатывает 4 раза. - person tmjam; 20.11.2011
comment
Я знаю, что для диспетчера чертежей запускаются два события "{overlay}complete" и "overlaycomplete" - person tmjam; 20.11.2011
comment
У меня не было никаких проблем с этим событием. Он всегда вел себя так, как ожидалось. Попробуйте отладить его, используя вместо этого google.maps.event.addListenerOnce(), если событие запускается более одного раза, то есть какая-то другая проблема. - person Tomik; 20.11.2011
comment
хорошо спасибо :). Сейчас я просто принимаю первый звонок и игнорирую остальные, пока не выясню проблему. - person tmjam; 20.11.2011