OpenLayers: trasformazione delle coordinate di un punto da WGS84 a Spherical Mercator e viceversa
ATTENZIONE!
Il post ha più di 2 anni e le informazioni contenute
potrebbero essere obsolete (ad esempio a causa di un
aggiornamento di versione rispetto agli elementi descritti
o links modificati da siti esterni).
Per visualizzare dei punti con coordinate gps (WGS84) su un layer Google Maps con OpenLayers è necessario eseguire la trasformazione delle coordinate da EPSG:4326 (ovvero WGS84) a EPSG:900913 (Spherical Mercator). Ecco le 2 funzioni per eseguire la traformazione diretta e inversa:
/**
* Trasformazione delle coordinate da WGS84 a Spherical Mercator
*/
function wgs84ToMercator(point){
return point.transform(
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
)
}
/**
* Trasformazione delle coordinate da Spherical Mercator a WGS84
*/
function MercatorToWgs84(point){
return point.transform(
new OpenLayers.Projection("EPSG:900913"), // transform from Spherical Mercator Projection
new OpenLayers.Projection("EPSG:4326") // to WGS 1984
)
}
Un esempio di utilizzo:
//definizione di un punto con sistema di coordinate WGS84
var point_WGS84 = new OpenLayers.Geometry.Point('13.1343', '45.6815');
//trasformazione delle coordinate da WGS84 a Spherical Mercator
var point_spherical_mercator = wgs84ToMercator(point);
Con la funzione "point.transform(projection1, projection2)" è possibile eseguire qualsiasi trasformazione tra sistemi di coordinate semplicemente modificando i codici SRS (spatial reference systems).

Commenti