2010-03-18 15 views
8

Tengo una coordenada GPS en WGS84 que me gustaría transformar a una coordenada de proyección de mapa en SWEREF99 TM usando PROJ.4 en Java o Proj4js en JavaScript.¿Cómo transformar coordenadas de WGS84 a una coordenada en una proyección con PROJ.4?

Es difícil encontrar documentación para PROJ.4 y cómo usarlo. Si tiene un buen enlace, publíquelo como comentario.

Los parámetros proj.4 para SWEREF99 TM es +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

He tratado de utilizar un PROJ.4 Java library para transformar Lat: 55° 00’ N, Long: 12° 45’ E y tratado con este código:

String[] proj4_w = new String[] { 
"+proj=utm", 
"+zone=33", 
"+ellps=GRS80", 
"+towgs84=0,0,0,0,0,0,0", 
"+units=m", 
"+no_defs" 
}; 

Projection proj = ProjectionFactory.fromPROJ4Specification(proj4_w); 

Point2D.Double testLatLng = new Point2D.Double(55.0000, 12.7500); 
Point2D.Double testProjec = proj.transform(testLatLng, new Point2D.Double()); 

Esto me da el punto Point2D.Double[5197915.86288144, 1822635.9083898761] pero debe haber N: 6097106.672, E: 356083.438 ¿Qué estoy haciendo mal? ¿y qué método y parámetros debo usar en su lugar?

Los valores correctos se toman de Lantmäteriet.

No estoy seguro si proj.transform(testLatLng, new Point2D.Double()); es el método correcto para usar.

Respuesta

3

55 es latitud o longitud?

EDITAR: parece que simplemente debe cambiar los parámetros lat y long.

Edit2: es decir

Point2D.Double testLatLng = new Point2D.Double(12.7500, 55.0000); 
Cuestiones relacionadas