2010-03-18 9 views
8

मेरे पास डब्लूजीएस 84 में एक जीपीएस-समन्वय है जो मैं जावा में PROJ.4 या जावास्क्रिप्ट में Proj4js का उपयोग कर SWEREF99 टीएम में मानचित्र-प्रोजेक्शन समन्वय में बदलना चाहता हूं।PROJ.4 के साथ प्रक्षेपण में WGS84 से समन्वय में समन्वय को कैसे परिवर्तित करें?

PROJ.4 और इसका उपयोग कैसे करें के लिए प्रलेखन ढूंढना मुश्किल है। यदि आपके पास एक अच्छा लिंक है, तो कृपया इसे एक टिप्पणी के रूप में पोस्ट करें।

SWEREF99 TM के लिए PROJ.4 पैरामीटर है +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

मैं Lat: 55° 00’ N, Long: 12° 45’ E बदलने के लिए एक PROJ.4 Java library का उपयोग करने की कोशिश की और इस कोड के साथ की कोशिश की है:

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 अक्षांश या देशांतर है?

संपादित करें: ऐसा लगता है कि आपको बस लेट और लंबे पैरामीटर स्वैप करना चाहिए।

EDIT2: अर्थात

Point2D.Double testLatLng = new Point2D.Double(12.7500, 55.0000); 
संबंधित मुद्दे