GEOGR. Koord. zu GK-Koord. in Java (Geodäsie/Vermessung)
Hallo Michael,
danke für die schnelle Antwort. Also zunächst einmal habe ich die Umrechnung von UTM zu Geographischen Koordinaten nach meinen Formeln aus der Studienzeit berechnet (Schödlbauer).
Hier sind mal 3 Formelblätter:
Geographische Koord. zu Gauss-Krüger
Geographische Koord. zu Gauss-Krüger Alternative
UTM-Koord. zu Geographischen Koordinaten
Da ich mit keiner dieser Formeln 100%ig zufrieden war, habe ich es dann später mit folgendem (an VB angepassten) Quellcode probiert, den ich hier gefunden habe:
Public Function UTM2GEO(ByVal UTM_N As Double, ByVal UTM_E As Double, ByVal Zone As Integer) As String 'für GRS80-Ellipsoid a = 6378137 'b = 6356752.3141 f = 0.0033528106811935602 '----------------------------------------------------------------------- 'für Hayford-Ellipsoid 'a = 6378388 'b = 6356911.946 'f = 0.0033670033670033669 '----------------------------------------------------------------------- 'für Bessel-Ellipsoid 'a = 6377397.155 'b = 6356078.963 'f = 0.0033427731799399793710112964908005 '----------------------------------------------------------------------- 'für WGS84 'a = 6378137. 'f = 0.00335281068 '----------------------------------------------------------------------- ' PoUTM_Eümmungshalbmesser c c = a / (1 - f) ' Quadrat der zweiten numerischen Exzentrizität ex2 = (2 * f - f * f) / ((1 - f) * (1 - f)) ex4 = ex2 * ex2 ex6 = ex4 * ex2 ex8 = ex4 * ex4 ' Koeffizienten zur Berechnung der geographischen Breite aus gegebener ' Meridianbogenlänge e0 = c * (Math.PI / 180) * (1 - 3 * ex2 / 4 + 45 * ex4 / 64 - 175 * ex6 / 256 + 11025 * ex8 / 16384) f2 = (180 / Math.PI) * (3 * ex2 / 8 - 3 * ex4 / 16 + 213 * ex6 / 2048 - 255 * ex8 / 4096) f4 = (180 / Math.PI) * (21 * ex4 / 256 - 21 * ex6 / 256 + 533 * ex8 / 8192) f6 = (180 / Math.PI) * (151 * ex6 / 6144 - 453 * ex8 / 12288) ' Geographische Breite bf zur Meridianbogenlänge gf = UTM_N Sigma = (UTM_N / 0.9996) / e0 sigmr = Sigma * Math.PI / 180 Bf = Sigma + f2 * Math.Sin(2 * sigmr) + f4 * Math.Sin(4 * sigmr) + f6 * Math.Sin(6 * sigmr) ' Breite bf in Radianten br = Bf * Math.PI / 180 tan1 = Math.Tan(br) tan2 = tan1 * tan1 tan4 = tan2 * tan2 cos1 = Math.Cos(br) cos2 = cos1 * cos1 etasq = ex2 * cos2 ' Querkrümmungshalbmesser nd nd = c / (1 + etasq) ^ 0.5 nd2 = nd * nd nd4 = nd2 * nd2 nd6 = nd4 * nd2 nd3 = nd2 * nd nd5 = nd4 * nd ' Längendifferenz dl zum Bezugsmeridian lh Lh = (Val(Mid(Zone, 1, 2)) - 30) * 6 - 3 dx = (UTM_E - 500000) / 0.9996 dx2 = dx * dx dx4 = dx2 * dx2 dx3 = dx2 * dx dx5 = dx4 * dx dx6 = dx3 * dx3 B2 = -tan1 * (1 + etasq) / (2 * nd2) B4 = tan1 * (5 + 3 * tan2 + 6 * etasq * (1 - tan2)) / (24 * nd4) B6 = -tan1 * (61 + 90 * tan2 + 45 * tan4) / (720 * nd6) L1 = 1 / (nd * cos1) L3 = -(1 + 2 * tan2 + etasq) / (6 * nd3 * cos1) L5 = (5 + 28 * tan2 + 24 * tan4) / (120 * nd5 * cos1) ' Geographischer Breite bb und Länge l als Funktion von Ostwert x und Nordwert y BB = Bf + (180 / Math.PI) * (B2 * dx2 + B4 * dx4 + B6 * dx6) LL = Lh + (180 / Math.PI) * (L1 * dx + L3 * dx3 + L5 * dx5) Geo_Koord = CStr(BB) + "/" + CStr(LL) Return Geo_Koord End Function
Allerdings scheint es hier auch Probleme bei der Berechnung des Längengrades zu geben.
Ich werde später mal versuchen, ob ich mit deinen Formeln zu Potte komme, muss jetzt allerdings in den Außendienst. Vielen Dank für deine Mühe.
Gruss
Thomas
gesamter Thread:
- UTM-Koord. zu GEOGR. Koord. zu GK-Koord. in VB -
Thomas,
21.12.2010, 14:12
- GEOGR. Koord. zu GK-Koord. in Java -
MichaeL,
21.12.2010, 15:55
- GEOGR. Koord. zu GK-Koord. in Java -
Thomas,
22.12.2010, 07:41
- GEOGR. Koord. zu GK-Koord. in Java -
MichaeL,
22.12.2010, 09:25
- GEOGR. Koord. zu GK-Koord. in Java -
Thomas,
22.12.2010, 20:00
- GEOGR. Koord. zu GK-Koord. in Java -
Christian,
29.12.2010, 22:15
- GEOGR. Koord. zu GK-Koord. in Java -
Tino,
03.01.2011, 18:22
- GEOGR. Koord. zu GK-Koord. in Java -
MichaeL,
07.01.2011, 16:45
- GEOGR. Koord. zu GK-Koord. in Java - Tino, 08.01.2011, 16:37
- GEOGR. Koord. zu GK-Koord. in Java -
MichaeL,
07.01.2011, 16:45
- GEOGR. Koord. zu GK-Koord. in Java -
Tino,
03.01.2011, 18:22
- GEOGR. Koord. zu GK-Koord. in Java -
Christian,
29.12.2010, 22:15
- GEOGR. Koord. zu GK-Koord. in Java -
Thomas,
22.12.2010, 20:00
- GEOGR. Koord. zu GK-Koord. in Java -
MichaeL,
22.12.2010, 09:25
- GEOGR. Koord. zu GK-Koord. in Java -
Thomas,
22.12.2010, 07:41
- UTM-Koord. zu GEOGR. Koord. zu GK-Koord. in VB - mad66, 25.01.2011, 23:49
- GK-Koordinaten in Länge und Breite umrechnen in C# -
Daniel_1983,
12.03.2011, 22:31
- GK-Koordinaten in Länge und Breite umrechnen in C# -
MichaeL,
13.03.2011, 10:14
- GK-Koordinaten in Länge und Breite umrechnen in C# -
Daniel_1983,
16.03.2011, 21:08
- GK-Koordinaten in Länge und Breite umrechnen in C# -
MichaeL,
17.03.2011, 10:00
- GK-Koordinaten in Länge und Breite umrechnen in C# - Stefan Hahne, 01.07.2011, 14:55
- GK-Koordinaten in Länge und Breite umrechnen in C# -
MichaeL,
17.03.2011, 10:00
- GK-Koordinaten in Länge und Breite umrechnen in C# -
Daniel_1983,
16.03.2011, 21:08
- GK-Koordinaten in Länge und Breite umrechnen in C# -
MichaeL,
13.03.2011, 10:14
- GEOGR. Koord. zu GK-Koord. in Java -
MichaeL,
21.12.2010, 15:55