2010-03-18 3 views
8

У меня есть координата GPS в WGS84, которую я хотел бы преобразовать в координату проекции карты в SWEREF99 TM, используя PROJ.4 в Java или Proj4js в JavaScript.Как преобразовать координату из WGS84 в координату в проекции с PROJ.4?

Его трудно найти документацию для PROJ.4 и как его использовать. Если у вас есть хорошая ссылка, разместите ее как комментарий.

Параметры, proj.4 для SWEREF99 TM является +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

Я пытался использовать PROJ.4 Java library для преобразования Lat: 55° 00’ N, Long: 12° 45’ E и пытался с этим кодом:

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

Это дало мне точку Point2D.Double[5197915.86288144, 1822635.9083898761], но я должен быть N: 6097106.672, E: 356083.438 Что я делаю неправильно? и какой метод и параметры следует использовать вместо этого?

Правильные значения взяты с Lantmäteriet.

Я не уверен, что proj.transform(testLatLng, new Point2D.Double()); - правильный способ использования.

ответ

3

55 - широта или долгота?

РЕДАКТИРОВАТЬ: кажется, вы должны просто заменить параметры lat и long.

EDIT2: т.е.

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