Coordinate mappa e riquadri

Seleziona la piattaforma: Android iOS JavaScript

L'API Maps JavaScript utilizza i seguenti sistemi di coordinate:

  • Valori di latitudine e longitudine, che fanno riferimento in modo univoco a un punto sul mondo. Google utilizza lo standard World Geodetic System WGS84.
  • Coordinate del mondo che fanno riferimento a un punto sulla mappa in modo univoco.
  • Coordinate di pixel che indicano un pixel specifico sulla mappa a un livello di zoom specifico.
  • Coordinate dei riquadri che fanno riferimento a un determinato riquadro sulla mappa a un livello di zoom specifico.

Coordinate mondiali

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

Per praticità nel calcolo delle coordinate in pixel (vedi di seguito), supponiamo che una mappa a livello di zoom 0 sia un singolo riquadro della dimensione del riquadro di base. Definiamo quindi le coordinate del mondo relative alle coordinate dei pixel a 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 mondiale è un valore in virgola mobile misurato dall'origine della proiezione della mappa al luogo specifico. Tieni presente che, poiché questo valore è in virgola mobile, potrebbe essere molto più preciso rispetto alla risoluzione corrente dell'immagine mappa mostrata. In altre parole, una coordinata mondiale è indipendente dal livello di zoom corrente.

Le coordinate mondiali in Google Maps sono misurate a partire 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 di x verso est (destra) e aumentano nella direzione di y verso sud (in basso). Poiché il riquadro di base di Google Maps su Mercator è di 256 x 256 pixel, lo spazio delle coordinate geografiche utilizzabile è {0-256}, {0-256}.

Nota che una proiezione di Mercatore ha una larghezza finita longitudinalmente e un'altezza infinita latitudinalmente. Tagliamo le immagini della mappa base utilizzando la proiezione di Mercatore a circa +/- 85 gradi per rendere quadrata la forma della mappa risultante, il che semplifica la selezione dei riquadri. Tieni presente che una proiezione potrebbe produrre coordinate al di fuori dello spazio di coordinate utilizzabili della mappa base se, ad esempio, la rappresentazione è molto vicina ai poli.

Coordinate in pixel

Le coordinate pixel fanno riferimento a un pixel specifico sulla mappa a un livello di zoom specifico, mentre le coordinate mondiali riflettono le posizioni assolute su una determinata proiezione. Le coordinate dei 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 in entrambe le direzioni x e y. Di conseguenza, ogni livello di zoom più elevato comporta una risoluzione quattro volte superiore rispetto al livello precedente. Ad esempio, al livello di zoom 1, la mappa è composta da 4 riquadri di 256 x 256 pixel, per cui lo spazio dei pixel è di 512 x 512. A livello di zoom 19, è possibile fare riferimento a ogni pixel x e y sulla mappa utilizzando un valore compreso tra 0 e 256 * 219.

Poiché le coordinate del mondo sono basate sulle dimensioni dei riquadri della mappa, la parte intera di una coordinata 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 del mondo.

Ora abbiamo un modo per indicare con precisione ogni località sulla mappa, a ogni livello di zoom. L'API Maps JavaScript crea un'area visibile in base al centro del livello di zoom della mappa (sotto forma di LatLng) e alle dimensioni dell'elemento DOM contenitore, e traduce questo riquadro di delimitazione nelle coordinate in pixel. L'API determina quindi logicamente tutti i riquadri della mappa che si trovano entro i limiti di pixel specificati. A ognuno di questi riquadri della mappa viene fatto riferimento tramite coordinate dei riquadri, che semplificano notevolmente la visualizzazione delle immagini della mappa.

Coordinate dei riquadri

L'API non può caricare contemporaneamente tutte le immagini della mappa per i livelli di zoom più elevati. L'API suddivide invece le immagini a ogni livello di zoom in un insieme di riquadri della mappa, disposti logicamente in un ordine comprensibile dall'applicazione. Quando una mappa scorre verso una nuova posizione o un nuovo livello di zoom, l'API determina quali riquadri sono necessari utilizzando le coordinate in pixel e converte questi valori in un insieme di riquadri da recuperare. Queste coordinate dei riquadri vengono assegnate tramite uno schema che semplifica logicamente la determinazione del riquadro che contiene le immagini relative a un determinato punto.

I riquadri in Google Maps sono numerati dalla stessa origine di quella dei pixel. Per l'implementazione della proiezione di Mercatore da parte di Google, il riquadro di origine si trova sempre nell'angolo nord-ovest della mappa, con i valori di x in aumento da ovest a est e i valori di y da nord a sud. I riquadri vengono indicizzati utilizzando le coordinate x,y di quell'origine. Ad esempio, a livello di zoom 2, quando la Terra è divisa in 16 riquadri, ogni riquadro può essere indicato da una coppia x,y univoca:

Mappa del mondo divisa in quattro righe e quattro colonne di riquadri.

Tieni presente che dividendo le coordinate in pixel per la dimensione del riquadro (256) e prendendo in considerazione le parti intere del risultato, si ricava come sottoprodotto la coordinata del riquadro con il livello di zoom corrente.

Esempio

L'esempio seguente mostra le coordinate per Chicago, IL: valori di latitudine/longitudine, coordinate del mondo, coordinate in pixel e coordinate dei riquadri. Utilizza il controllo zoom per visualizzare i valori delle coordinate a diversi livelli di zoom.

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