Как преобразовать координату из WGS84 в координату в проекции с помощью PROJ.4?
-
20-09-2019 - |
Вопрос
У меня есть координата GPS в WGS84, которую я хотел бы преобразовать в координату картографической проекции в SWEREF99 TM, используя ПРОЕКТ.4 на Яве или Проект 4js в JavaScript.
Трудно найти документацию для ПРОЕКТ.4 и как его использовать.Если у вас есть хорошая ссылка, оставьте ее в комментариях.
Параметры PROJ.4 для SWEREF99 ТМ является +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
Я попытался использовать Библиотека Java PROJ.4 для преобразования 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
Что я делаю не так?и какой метод и параметры мне следует использовать вместо этого?
Правильные значения взяты из Лантматтериет.
Я не уверен, если proj.transform(testLatLng, new Point2D.Double());
это правильный метод для использования.
Решение
55 это широта или долгота?
РЕДАКТИРОВАТЬ:кажется, вам следует просто поменять местами параметры широты и долготы.
РЕДАКТИРОВАТЬ2:то есть
Point2D.Double testLatLng = new Point2D.Double(12.7500, 55.0000);