![]() |
Geokoordinaten Umrechnen in Dezimalgrad
Ich habe Geokoordinaten in der Form: N 49° 41.567 E 008° 51.356
Und möchte diese in Dezimalgrad umwandeln, also so: 49.531 8.356 Und eben auch umgekehrt. Weiß jemand wie ich das in Delphi realisieren kann? Danke. |
AW: Geokoordinaten Umrechnen in Dezimalgrad
|
AW: Geokoordinaten Umrechnen in Dezimalgrad
Du kannst auch nach NMEA Konvertierungen suchen. Ich müsste irgenwo eine Funktion haben.
Im NMEA String ist "N 49° 41.567" als "4941.5670,N" kodiert. Meine geht mit Grad merken und Rest durch 60 Sekunden (Minuten?) teilen und bei S/W noch negieren. Ich suche mal die Funktion... |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Zitat:
Nord = 49 + (41.567 / 60) = 49,692783 Den Weg in die Andere Richtung kannst Du Dir selbst überlegen. |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Gefunden:
Delphi-Quellcode:
Also E48° 41' 50.908" wird so übergeben:
function GeoToDec(Grad : Integer; Min, Sec : Double; Direction : AnsiChar): Double;
begin Result := (Min / 60) + (Sec / 3600) + Grad; if Direction in ['S', 'W'] then Result := -Result; end;
Delphi-Quellcode:
GeoToDec(48, 41, 50.908, 'N')
|
AW: Geokoordinaten Umrechnen in Dezimalgrad
Zitat:
Wäre schon nett wenn Du mir noch den Weg in die andere Richtung beschreiben könntest. Ich komme da nicht drauf. Danke. |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Wenn es Süd oder West ist, dann musst Du es negieren.
Meine Formel mal allgemein formuliert. Dezimalgrad = Grad + (Minuten / 60) Stelle die Formel nach "Grad" um und Du hast den Grad-Anteil. Stelle die Formel nach "Minuten" um und Du hast den Minutenanteil. |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Hab' meine Funktion leicht geändert, somit sind auch Dezimal-Minuten (ohne Sekunden) verwendbar.
|
AW: Geokoordinaten Umrechnen in Dezimalgrad
@Satty67, kann deine Funktion dies: N 49° 52.048 E 008° 33.470 in dies: 49.867467 8.557833 Umwandeln? Scheinbar nimmst du ein anderes Format und zwar dies: N49° 52' 2.88" E8° 33' 28.2", oder?
Für mich wichtig wäre jetzt erst mal die umgekehrte Umwandlung, also dies: 49.867467 8.557833 in N 49° 52.048 E 008° 33.470 Gibt es keine Funktionsbibliothek für solche Geo-Sachen? bräuchte da auch noch Entfernung zw. zwei koordinaten und eventuell die Himmelsrichtung einer Koordinate vom Ausgangspunkt. Aber im Moment ist die og. Umrechnung erst mal wichtig :) |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Zitat:
Wo genau liegt Dein Problem, die Formel für die andere Richtung umzuformen? |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Zitat:
|
AW: Geokoordinaten Umrechnen in Dezimalgrad
|
AW: Geokoordinaten Umrechnen in Dezimalgrad
das ist nicht dein Ernst oder? Komme mir vor wie in einem Hausaufgabenforum, wo keiner eine Lösung geben will.
Nja, vielleicht erbarmt sich ja doch noch jemand :roll: |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Zitat:
Geodaten sind Angaben in Grad° Minuten' Sekunden" oder Grad° Minuten+Sekunden als Dezimalzahl Beides kannst Du der Funktion übergeben, im zweiten Fall für Sekunden einfach 0 angeben. Unwissenheit ist übrigens keine Schande, ich weis auch vieles nicht. Im Zeitalter von Internet und Google sollte man aber Informationen sammeln können. Die Umrechnung ist übrigens genausowenig Hexerei wie 1 Stunde 30 Minuten in 1,5 Stunden umzurechen (das macht fast jeder schnell im Kopf) ;) Zitat:
|
AW: Geokoordinaten Umrechnen in Dezimalgrad
ich gebe hier niemanden die Schuld an meiner Unwissenheit....
Klar wie man N 49° 52.048 E 008° 33.470 in dies: 49.867467 8.557833 Umwandelt weis ich ja nun schon lange. kann deine Funktion auch den umgekehrten weg rechnen? Denn nur darum geht es mir momentan. Mit dem umgekehrten weg habe ich eben probleme. Ich peil es eben nicht.. hab von dem Koordinaten Kram keine Ahnung und Mathe ist mehr als ewig her.... brauch einfach nur ne Formel.. Sorry... Und für die bisherige Hilfe bin ich dankbar!! Hat mir weiter geholfen. |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Für die Rückrechnung gibt es keine einzelne Formel, da der Dezimalwert in 3-4 Einzelergebnisse aufgeteilt werden muss:
Delphi-Quellcode:
function DecToGeo(GeoAsDec : Double): String;
var Grad : Integer; Value, Min, Sek : Double; begin Value := Abs(GeoAsDec * 60); // In positive Minuten Sek := Frac(Value) * 60; // Nachkomma sind jetzt Sekunden, quasi * 3600 Min := Trunc(Value) mod 60; // Minuten ist Rest aus Ganzzahlanteil DIV 60, also MOD Grad := Trunc(Value) div 60; // Grad ist Ganzzahlanteil DIV 60 Result := Format('%d° %.0f %.4f', [Grad, Min, Sek]); end; |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Hat sich erledigt, habs nun endlich selbst gepeilt.
Dennoch Danke an diejenigen die geholfen haben :) @Satty67, deine funktion liefert mir: 49° 31 38,3400 aus: 49.5273166666666 zurück. Sollte doch aber: 49° 31.639 sein. Egal, wie gesagt habe es gepeilt. Ist total einfach. Bsp: 49.52731 die stellen nach dem Punkt einfach mal 60 nehmen = 3163860 = 49° 31.639 gerundet |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Hi,
Ich habe ein Link gefunden, da kannst du deine Ergebnisse kontrollieren: ![]() |
AW: Geokoordinaten Umrechnen in Dezimalgrad
Danke für den Link
|
AW: Geokoordinaten Umrechnen in Dezimalgrad
Zitat:
Ich fand es sinnvoll die Funktion für die feinere Auflösung zu entwerfen, weil hinterher zusammenfassen immer einfacher ist. |
AW: Geokoordinaten Umrechnen in Dezimalgrad
KLar, wenn man weis wie es geht dann ist das sicher super.
Für meine zwecke reicht erst mal die einfache variante :) Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz