Maps SDK for Android utilizza i seguenti sistemi di coordinate:
- Valori di latitudine e longitudine, che fanno riferimento a un punto nel mondo in modo univoco. Google utilizza lo standard World Geodetic System WGS84.
- Coordinate del mondo, che fanno riferimento a un punto sulla mappa in modo univoco.
- Coordinate pixel, che fanno riferimento a un pixel specifico sulla mappa a un livello di zoom specifico.
- Coordinate dei riquadri, che fanno riferimento a un riquadro specifico sulla mappa a un livello di zoom specifico.
Coordinate globali
Ogni volta che l'API deve tradurre una località nel mondo in una località su una mappa, converte prima i valori di latitudine e longitudine in una coordinata mondiale. L'API utilizza la proiezione di Mercatore per eseguire questa conversione.
Per comodità nel calcolo delle coordinate pixel (vedi di seguito), supponiamo che una mappa con livello di zoom 0 sia un'unica sezione della dimensione di base. Quindi, definiamo le coordinate del mondo rispetto alle coordinate pixel al livello di zoom 0, utilizzando la proiezione per convertire le latitudini e le longitudini in posizioni dei pixel su questo riquadro di base. Questa coordinata del mondo è un valore in virgola mobile misurato dall'origine della proiezione della mappa alla posizione specifica. Tieni presente che, poiché questo valore è un valore in virgola mobile, potrebbe essere molto più preciso della risoluzione corrente dell'immagine della mappa mostrata. In altre parole, una coordinata del mondo è indipendente dal livello di zoom corrente.
Le coordinate del mondo in Google Maps vengono misurate dall'origine della proiezione di Mercatore (l'angolo nord-ovest della mappa a 180 gradi di longitudine e circa 85 gradi di latitudine) e aumentano nella direzione x verso est (destra) e nella direzione y verso sud (giù). Poiché il riquadro di base di Google Maps con proiezione di Mercatore è di 256 x 256 pixel, lo spazio delle coordinate del mondo utilizzabile è {0-256}, {0-256}.
![]()
Tieni presente che una proiezione di Mercatore ha una larghezza finita longitudinalmente, ma un'altezza infinita latitudinalmente. Le immagini della mappa base che utilizzano la proiezione di Mercatore vengono tagliate a circa +/- 85 gradi per rendere quadrata la forma della mappa risultante, il che consente una logica più semplice per la selezione dei riquadri. Tieni presente che una proiezione può produrre coordinate del mondo al di fuori dello spazio delle coordinate utilizzabile della mappa base se, ad esempio, tracci un punto molto vicino ai poli.
Coordinate pixel
Le coordinate pixel fanno riferimento a un pixel specifico sulla mappa a un livello di zoom specifico, mentre le coordinate del mondo riflettono le posizioni assolute su una determinata proiezione. Le coordinate pixel vengono calcolate utilizzando la seguente formula:
pixelCoordinate = worldCoordinate * 2zoomLevel
Dall'equazione precedente, tieni presente che ogni livello di zoom crescente è due volte più grande sia nella direzione x che in quella y. Pertanto, ogni livello di zoom più alto genera una risoluzione quattro volte superiore rispetto al livello precedente. Ad esempio, al livello di zoom 1, la mappa è composta da 4 riquadri da 256 x 256 pixel, con uno spazio di pixel di 512 x 512. Al livello di zoom 19, ogni pixel x e y sulla mappa può essere indicato utilizzando un valore compreso tra 0 e 256 * 219.
Poiché abbiamo basato le coordinate del mondo sulle dimensioni dei riquadri della mappa, la parte intera di una coordinata pixel ha l'effetto di identificare il pixel esatto in quella posizione nel livello di zoom corrente. Tieni presente che per il livello di zoom 0, le coordinate pixel sono uguali alle coordinate del mondo.
Questi sistemi di coordinate indicano con precisione ogni posizione sulla mappa, a ogni livello di zoom. Maps SDK for Android crea un'area visibile in base al livello di zoom, al centro della mappa come LatLng e alle dimensioni dell'elemento DOM contenitore, quindi traduce questo riquadro di delimitazione in coordinate pixel. L'API determina quindi logicamente tutti i riquadri della mappa che rientrano nei limiti dei pixel specificati. Puoi fare riferimento a ciascuno di questi riquadri di mappa utilizzando le coordinate dei riquadri, che semplificano notevolmente la visualizzazione delle immagini della mappa.
Coordinate dei riquadri
L'API non può caricare tutte le immagini della mappa contemporaneamente per livelli di zoom più elevati. Invece, suddivide le immagini di ogni livello di zoom in un insieme di riquadri della mappa, che vengono disposti logicamente in un ordine che l'applicazione può utilizzare. Quando una mappa scorre verso una nuova posizione o un nuovo livello di zoom, l'API determina le tessere necessarie utilizzando le coordinate pixel, quindi converte questi valori in un insieme di tessere da recuperare. Assegna queste coordinate dei riquadri utilizzando uno schema che semplifica la determinazione del riquadro che contiene le immagini per un determinato punto.
I riquadri di Google Maps sono numerati a partire dalla stessa origine dei pixel. Per l'implementazione della proiezione di Mercatore da parte di Google, la
tile di origine si trova sempre nell'angolo nord-ovest
della mappa, con i valori x che aumentano da ovest a
est e i valori y che aumentano da nord a sud. I riquadri vengono indicizzati utilizzando le coordinate x,y da quell'origine. Ad esempio, al livello di zoom 2, quando la Terra è divisa in 16 riquadri, ogni riquadro può essere identificato da una coppia x,y univoca:

Tieni presente che dividendo le coordinate pixel per le dimensioni del riquadro (256) e prendendo le parti intere del risultato, ottieni come sottoprodotto la coordinata del riquadro al livello di zoom corrente.
Esempio
L'esempio seguente mostra le coordinate di Chicago, Illinois: valori di latitudine/longitudine, coordinate del mondo, coordinate pixel e coordinate dei riquadri. Utilizza il controllo dello zoom per visualizzare i valori delle coordinate a vari livelli di zoom.
Per vedere come sono state calcolate le coordinate, visualizza il codice.