Newsgroup: it.comp.www.php
Titolo: Convert and scale the long/lat coordinates to screen coordinates

ciao
ho trovato un tutorial con questa funzione
<?php
function getlocationcoords($lat, $lon, $width, $height)
{
     $x = (($lon + 180) * ($width / 360));
     $y = ((($lat * -1) + 90) * ($height / 180));
     return array("x"=>round($x),"y"=>round($y));
}
?>
ma non riesco a capire come funziona...
mi sono documentato...
la latitudine di un punto è la distanza angolare tra il suddetto punto e 
l'equatore, e puo' variare da 0 gradi se si trova sull'equatore a MAX 90°.
la longitudine di un punto è la distanza angolare tra il suddetto punto 
e il meridiano di Grenwich, e puo' variare da 0 gradi se si trova sul 
meridiano a MAX 180°.
Inoltre per la navigazione si fa testo ad una convenzione
per i calcoli algebrici relativi alle operazioni fra latitudini e 
longitudini
e cioe' per le latitudini\longitudini NORD-EST i gradi hanno segno +
         per le latitudini\longitudini  SUD-OVESt i gradi hanno segno -
           ora se io prendo una mappa che rappresenta una parte della 
zona che a me interessa, come faccio a diciamo georeferenziare quella 
porzione di mappa facendo si che la funzione indicata riesca a gestire 
una reale corrispondenza con le coordinate reali e i pixel dello schermo?
Devo utilizzare qualche servizio di quelli presenti on line per avere 
tali dati?
sto' muovendo i primi passi in questa personale sfida intellettuale...
e non ho conoscenze in merito
grazie

> ho trovato un tutorial con questa funzione
stai provando con le api di google?? 

 
no niente api di google
vorrei svincolarmi e creare qualcosa di piccolo ma fatto da me ;)

 mi sono documentato...
[..]
guarda l'immagine alla quale si riferisce la funzione..
$width e $height sono la sua larghezza ed altezza ma non cercare di capirle
ora.. quindi *per adesso* assumi che la larghezza dell'immagine sia di
360px e la sua altezza 180px..
premesso che dovresti sapere che per indirizzare un pixel su un'immagine si
parte da sinistra verso destra e dall'alto verso il basso..
saprai bene che alla lat 0° lon 0° corrisponde il centro della mappa
(meridiano fondamentale/equatore) che stai vedendo..
e da questo ricavi qualcosa del genere..
180px = lon 0° (linea che taglia verticalmente la mappa)
90px = lat 0° (linea che taglia orizzontalmente la mappa)
da qui la strada e' semplice..
se il pixel 180, 90 sara' uguale a lon 0° lat 0° allora il pixel 0, 0 sara'
uguale a lon -180° lat +90°..
quindi, data una lon ed una lat, per allinearti sul centro, ad ogni
longitudine dovrai aggiungere 180 ed ad ogni latitudine dovrai aggiungere
90 (nota che devi aggiungere perche' come ho detto prima per indirizzare un
pixel devi muoverti dall'alto verso il basso e, sempre per lo stesso
motivo, devi invertire il segno della latitudine prima di usarla)..
se hai capito tutto adesso non ti rimane altro che riflettere sul perche' la
larghezza si divide per 360 e poi si moltiplica per la longitudine e
perche' la latitudine sara' divisa per 180 per poi essere moltiplicata per
la latitudine.. di fatto e' solo per scalare le coordinate ottenute per
corrispondere alla larghezza/altezza dell'immagine che usi come mappa..
ma se sei riuscito a capire quello che ho scritto nella prima parte questo
ormai ti sembrera' abbastanza ovvio..
spero di essermi spiegato abbastanza..
e mi scuso per eventuali errori.. ma e' anche molto tempo che non studio
geografia..
-- 
www.iuz-lab.info

iuz ha scritto:

azzz .. grazie :) anche se non centro nulla con il postatore originale 
.. ma ti ringrazio per la tua spiegazione ;) mi è tanto utile .. :)
-- 
!!! SODDISFATTI O RIMBORSATI !!! Nessuno si è mai lamentato della nostra 
offerta 2x1. Morire in 2 e pagare per 1.
[CapoBecchino] - hotmail/msn: capobecchino [@] hotmail [.] com

 
prego..
-- 
www.iuz-lab.info