كيفية تحويل الإحداثيات من WGS84 إلى إحداثي في ​​إسقاط مع proj.4؟

StackOverflow https://stackoverflow.com/questions/2469583

سؤال

لديّ تنسيق GPS في WGS84 أود تحويله إلى إحداثيات إسقاط الخريطة في SWERF99 TM باستخدام proj.4 في جافا أو proj4js في JavaScript.

من الصعب العثور على وثائق ل 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 للتحول 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()); هي الطريقة الصحيحة للاستخدام.

هل كانت مفيدة؟

المحلول

55 هل خط العرض أم خط الطول؟

تحرير: يبدو أنه يجب عليك ببساطة تبديل المعلمات اللاتينية والطويلة.

EDIT2: أي

 Point2D.Double testLatLng = new Point2D.Double(12.7500, 55.0000); 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top