2010-03-18 3 views
8

J'ai une coordonnée GPS dans WGS84 que je voudrais transformer en une coordonnée de projection de carte dans SWEREF99 TM en utilisant PROJ.4 en Java ou Proj4js en JavaScript.Comment transformer une coordonnée de WGS84 en coordonnée dans une projection avec PROJ.4?

Sa documentation est difficile à trouver pour PROJ.4 et comment l'utiliser. Si vous avez un bon lien, merci de le poster en commentaire.

Les paramètres PROJ.4 pour SWEREF99 TM est +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

J'ai essayé d'utiliser un PROJ.4 Java library pour transformer Lat: 55° 00’ N, Long: 12° 45’ E et essayé avec ce code:

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()); 

Cela me donne le point Point2D.Double[5197915.86288144, 1822635.9083898761] mais je devrait être N: 6097106.672, E: 356083.438 Qu'est-ce que je fais mal? et quelle méthode et quels paramètres dois-je utiliser à la place?

Les valeurs correctes proviennent de Lantmäteriet.

Je ne suis pas sûr si proj.transform(testLatLng, new Point2D.Double()); est la bonne méthode à utiliser.

Répondre

3

55 est la latitude ou la longitude?

EDIT: il semble que vous devriez simplement échanger les paramètres lat et long.

EDIT2: à savoir

Point2D.Double testLatLng = new Point2D.Double(12.7500, 55.0000); 
Questions connexes