Cartografia con Bing Maps

Per realizzare una delle funzionalità del client di Decoro Urbano, ovvero per visualizzare l’elenco delle segnalazioni (fatte da tutti) entro una determinata distanza dal punto in cui si trova l’utente, ho bisogno di poter convertire la distanza in metri D dalla posizione dell’utente (espressa come coppia latitudine longitudine) nell’equivalente variazione di longitudine e latitudine, come illustrato in figura:

image

Mi occorre quindi un metodo per calcolare latitudine minima e massima e longitudine minima e massima a partire dalla latitudine e longitudine relative alla posizione attuale e alla distanza desiderata.

Mi sono dunque messo a studiare la materia e ho appreso quanto segue.

Considerando che la mappa di Bing utilizza una proiezione cilindrica centrografica modificata di Mercatore:

image

per variazioni di longitudine minori di p/2 valgono le formule:

image

Nelle formule, tutte le misure sono espresse in radianti. In particolare, per quanto riguarda d, ho avuto qualche perplessità iniziale su come fosse possibile esprimere la distanza di due punti sulla superficie terrestre in termini angolari, poi risolte quando ho appreso che tale concetto è insito nella definizione stessa di miglio nautico:

image 

Infatti la definizione storica di miglio nautico è proprio la distanza sulla superficie terrestre corrispondente ad un minuto di grado (ovvero ad un sessantesimo di grado).

E poiché un miglio nautico corrisponde a 1852 metri, si ottiene facilmente la conversione di una distanza (espressa in metri) nella corrispondente misura angolare (espressa in gradi), e di conseguenza quella per esprimere tale misura in radianti:

image

Per contro, il valore a è del tutto banale, essendo l’angolo tra il nord reale e la direzione (“true course”, in inglese) del vettore spostamento D, come illustrato in figura.

Una volta capito il funzionamento delle geocoordinate, torniamo al nostro problema iniziale. Poiché abbiamo la possibilità di interrogare il servizio di Decoro Urbano relativamente alle segnalazioni contenute tra i valori minimi e massimi di latitudine e longitudine, tali valori sono facilmente calcolabili grazie alla definizione angolare di miglio marino (e quindi di metro lineare). Infatti, poiché la latitudine minima e massima si calcola mantenendoci sullo stesso meridiano (ovvero con longitudine che non cambia) e allo stesso modo longitudine minima e massima si calcolano sullo stesso parallelo (ovvero con latitudine che non cambia), il valore della direzione è: 0° e 180° per la latitudine massima e minima, 90° e 270° per longitudine massima e minima.

Tali valori consentono un’estrema semplificazione delle formule suddette, che diventano (con la distanza D espressa in metri e latitudine l e longitudine f espresse in gradi decimali):

image

E questo conclude la nostra “rapida” digressione nel mondo della cartografia.

Happy coding!

posted @ lunedì 2 aprile 2012 15:45

Print
Comments have been closed on this topic.
«dicembre»
domlunmarmergiovensab
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234