2012-07-14 13 views
8

In base alla funzione Google Maps JavaScript API v3 documentation, google.maps.PolygongetPath() della classe restituisce un MVCArray. In un caso semplice, il percorso di un poligono può essere costituito da una singola matrice di , convertita nel tipo , passata alla funzione setPath() della classe google.maps.Polygon.LatLng da Google Maps Polygon getPath()

Il caso di cui sopra è quello che sto trattando attualmente. Passo in una serie di LatLngs e restituisco (cosa presumo sia) un MVCObject quando chiamo getPath() sul mio oggetto Polygon. La mia domanda è: come posso convertire questo MVCObject in una singola matrice di LatLngs che forma la forma del poligono? Sono presenti alcuni esempi di API v3 di Google Maps che mi mancano? Mi sembra che ci sia una sorta di ovvia funzione di conversione incorporata o qualcosa dell'API che mi sfugge.

Qualsiasi aiuto sarebbe apprezzato.

risposta

24

Quando si chiama Polygon.getPath()api-doc, il ritorno è un MVCArrayapi-doc di LatLng istanze che rappresentano il primo percorso del Polygon. È direttamente può raggiungere i membri della MVCAarray in due modi:

  1. chiamata MVCAarray.getArray, che restituirà il JavaScript sottostante Array che contiene LatLng membri.
  2. Utilizzare MVCArray.getAt(index), che restituirà ciò che si trova in quell'indice nello MVCArray (uno LatLng in questo caso). Questo ti fornisce un modo per configurare un ciclo JavaScript for per iterare sui membri dell'array.

È inoltre possibile lavorare indirettamente con i membri di MVCArray utilizzando la funzione forEach(callback:function(*, number)). In questo caso, è necessario passare una funzione di richiamata che accetta due parametri:

  1. Elemento membro effettivo di MVCArray.
  2. L'indice della matrice in cui si trova quell'elemento.
+0

Naturalmente. Non posso credere di averlo perso nei documenti. Grazie. –

+0

C'è un modo per ottenere LngLat anziché LatLong (coordinate geoJson)? – AllJs