Używam obecnie DrawingManager
, aby umożliwić użytkownikom rysowanie kształtów na mapie. Gdy kształt jest rysowany, skonfigurować słuchacza na ścieżce wielokąta więc mogę reagować po ścieżka została zmieniona:Odsłuchiwanie zdarzenia `set_at` przy użyciu interfejsu ui-gmap-polygon
var polygonPath = event.overlay.getPath();
google.maps.event.addListener(polygonPath, 'set_at', function() {
// my code...
});
Działa to doskonale, gdy użytkownik dodaje nowy kształt za pomocą narzędzia do rysowania. Jeśli jednak mam już w bazie danych wielokątów, które wyświetlam z dyrektywą ui-gmap-polygon
AngularJS (z projektu angular-google-maps
), jak mogę odsłuchać zdarzenie set_at
, ponieważ to zdarzenie nie jest na polygon, ale zamiast tego na wielokąta ścieżka (MVCArray)?
Jedyne miejsce, w którym udało mi się znaleźć odniesienie do set_at
w kodzie źródłowym projektu angular-google-maps
, znajdowało się w pliku array-sync.coffee, ale wygląda na to, że nie zostało ujawnione.
Jeśli nie można posłuchać zdarzenia set_at
bezpośrednio za pomocą dyrektywy, mam nadzieję, że zdarzenie zostanie wywołane, gdy dyrektywa utworzy wielokąt, aby można było uzyskać ścieżkę wielokąta, a następnie dodać detektor do tak, jak powyższy kod.
Połączyłem ze sobą strukturę wraz z obiektem zdarzeń. Aktualnie obsługuje ruchy kursora i mouseout wielokąta, ale nie zdarzenie set_at
.
Jaki jest cel? Czy używasz 'setAt()' do budowania wielokątów? – MrUpsidown
Mam tablicę wielokątów, które zapełniam z serwera. Następnie używam 'ng-repeat' na' ui-gmap-polyygon' i ustawiam atrybut ścieżki, aby dyrektywa mogła tworzyć wieloboki. Muszę posłuchać zdarzenia 'set_at', aby wiedzieć, kiedy użytkownik modyfikuje wielokąt, aby móc zareagować na niestandardowy kod. –
Proszę podać: [mcve] (http://stackoverflow.com/help/mcve). –