Coordinate mappa e riquadri

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Seleziona piattaforma: Android iOS JavaScript

L'SDK Maps per iOS utilizza i seguenti sistemi di coordinate:

  • Valori di latitudine e longitudine, che fanno riferimento a un punto sul mondo in modo univoco. (Google utilizza lo standard World Geodetic System WGS84).
  • Coordinate mondiali, che fanno riferimento a un punto sulla mappa in modo univoco.
  • Coordinate del 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 geografiche

Ogni volta che l'API deve tradurre una località del mondo in una località su una mappa, traduce innanzitutto i valori di latitudine e longitudine in una coordinata di world. L'API utilizza la proiezione di Mercator per eseguire questa traduzione.

Per comodità nel calcolo delle coordinate in pixel (vedi di seguito), supponiamo che una mappa a livello di zoom 0 sia un singolo riquadro relativo alle dimensioni della scheda di base. Poi definiamo le coordinate globali relative alle coordinate in pixel a livello di zoom 0, utilizzando la proiezione per convertire le latitudine e la longitudine in posizioni dei pixel su questo riquadro di base. Questa coordinata globale è un valore in virgola mobile misurato dall'origine della proiezione della mappa alla località specifica. Poiché questo valore è in virgola mobile, può essere molto più precisa della risoluzione corrente dell'immagine mappa mostrata. Una coordinata globale è indipendente dal livello di zoom corrente, ovvero

Le coordinate globali in Google Maps vengono misurate dall'origine della proiezione di Mercator (l'angolo nord-ovest della mappa a 180 gradi di longitudine e circa 85 gradi di latitudine) e aumentano di x direzione verso est (a destra) e di aumento di y verso sud (in basso). Poiché la scheda di base di Mercator di Google Maps ha una dimensione di 256 x 256 pixel, lo spazio di coordinate globale utilizzabile è {0-256}, {0-256}.

Ricorda che una proiezione di Mercatore ha una larghezza limitata, ma un'altezza latitudinale infinita. Tagliamo le immagini di mappa di base utilizzando la proiezione di Mercator a circa +/- 85 gradi per rendere la forma della mappa quadrata risultante, che consente una logica più semplice per la selezione di riquadri. Tieni presente che una proiezione potrebbe produrre coordinate globali al di fuori dello spazio di coordinate utilizzabile della mappa base se rappresenti molto vicino ai poli, ad esempio.

Coordinate pixel

Le coordinate di Pixel fanno riferimento a un pixel specifico sulla mappa a un livello di zoom specifico, mentre le coordinate di tutto il mondo riflettono le posizioni assolute su una determinata proiezione. Le coordinate dei pixel vengono calcolate utilizzando la seguente formula:

pixelCoordinate = worldCoordinate * 2zoomLevel

Dall'equazione sopra, tieni presente che ogni livello di zoom aumenta la metà delle dimensioni nelle direzioni x e y. Pertanto, ogni livello di zoom più elevato genera una risoluzione quattro volte superiore al livello precedente. Ad esempio, al livello di zoom 1, la mappa è composta da 4 riquadri da 256 x 256 pixel, ottenendo uno spazio di pixel da 512 x 512. Al livello di zoom 19, è possibile fare riferimento a x e y pixel sulla mappa utilizzando un valore compreso tra 0 e 256 * 219.

Poiché abbiamo basato le coordinate del mondo sulle dimensioni del riquadro della mappa, una parte intera del coordinato di 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 in pixel sono uguali alle coordinate in tutto il mondo.

Ora possiamo indicare con precisione ogni località sulla mappa, a ogni livello di zoom. L'SDK Maps per iOS crea un'area visibile in base al centro del livello di zoom della mappa (come un LatLng) e alle dimensioni dell'elemento DOM contenente e traduce questo riquadro di delimitazione in coordinate del pixel. L'API determina quindi logicamente tutti i riquadri della mappa che rientrano nei limiti dei pixel specificati. Ognuno di questi riquadri della mappa viene aggiunto utilizzando le coperture del riquadro, che semplificano notevolmente la visualizzazione delle immagini della mappa.

Coordinate dei riquadri

L'API non può caricare tutte le immagini della mappa in una sola volta per i livelli di zoom più elevati. L'API suddivide invece le immagini a ogni livello di zoom in un insieme di riquadri di mappa, che sono disposti in modo logico in un ordine comprensibile per l'applicazione. Quando una mappa scorre verso una nuova posizione o fino a un nuovo livello di zoom, l'API determina quali riquadri sono necessari utilizzando le coordinate dei pixel e converte tali valori in un insieme di riquadri da recuperare. Le coordinate di questo riquadro vengono assegnate utilizzando uno schema che consente di determinare facilmente quale riquadro contiene le immagini per un determinato punto.

I riquadri in Google Maps sono numerati con la stessa origine di quelli dei pixel. Per l'implementazione della proiezione di Mercator da parte di Google, il riquadro di origine si trova sempre all'angolo nord-ovest della mappa, con valori x che vanno da ovest a est e valori y che vanno da nord a sud. I riquadri vengono indicizzati utilizzando le coordinate x,y di quella origine. Ad esempio, al livello di zoom 2, quando la terra è divisa in 16 riquadri, ogni riquadro può essere fatto riferimento a una coppia x,y univoca:

Notando che dividendo le coordinate in pixel per la dimensione del riquadro (256) e dividendo le parti intere del risultato, ottieni una coordinata per sottoprodotto al livello di zoom corrente.

Esempio

Il seguente esempio mostra le coordinate per Chicago, IL: valori di latitudine/longitudine, coordinate di tutto il mondo, coordinate di pixel e coordinate del riquadro. Utilizza il controllo zoom per visualizzare i valori delle coordinate a vari livelli di zoom.

Per scoprire come sono state calcolate le coordinate, visualizza il codice.