Forum: Programmieren allgemein
Delphi
by Satty67,
27. Mai 2011
Es gibt eben zwei Formate, einmal Sekunden/Minuten getrennt und einmal zusammengefasst.
Ich fand es sinnvoll die Funktion für die feinere Auflösung zu entwerfen, weil hinterher zusammenfassen immer einfacher ist.
Forum: Programmieren allgemein
Delphi
by Satty67,
27. Mai 2011
Für die Rückrechnung gibt es keine einzelne Formel, da der Dezimalwert in 3-4 Einzelergebnisse aufgeteilt werden muss:
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; //...
Forum: Programmieren allgemein
Delphi
by Satty67,
27. Mai 2011
Beide Formate kannst Du übergeben.
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.
Forum: Programmieren allgemein
Delphi
by Satty67,
27. Mai 2011
Hab' meine Funktion leicht geändert, somit sind auch Dezimal-Minuten (ohne Sekunden) verwendbar.
Forum: Programmieren allgemein
Delphi
by Satty67,
27. Mai 2011
Gefunden:
function GeoToDec(Grad : Integer; Min, Sec : Double; Direction : AnsiChar): Double;
begin
Result := (Min / 60) + (Sec / 3600) + Grad;
if Direction in then
Result := -Result;
end;
Also E48° 41' 50.908" wird so übergeben:
Forum: Programmieren allgemein
Delphi
by Satty67,
27. Mai 2011
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...