INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Umwandlung von Koordinaten
21.11.2014, 22:38
Beitrag #1
Umwandlung von Koordinaten
Ich hab mir ein GPS Modul gekauft (Deek-Robot). Trotzdem das ein Atafruit-Clone ist hab ich es nur mit der TinyGPS Library zum Laufen gebracht, aber das ist hier nebensächlich.
Nun versuche ich krampfhaft, die ausgelesenen Koordinaten umzurechnen.
Meine Nordkoordinate sieht im Moment so aus:

4737974 (definiert als float)
Ich hätte sie aber lieber in folgendem Format: 47 22.785 (hddd° mm.mmm')

Wie lese ich aus meiner float-Zahl die einzelnen Stellen aus um diese umzurechnen? Die TinyGPS Library unterstützt leider kein Format wie hddd° mm.mmm'
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.11.2014, 05:19
Beitrag #2
RE: Umwandlung von Koordinaten
Hallo,

dein Ausgangswert ist Dezimalgrad und du möchtes das in Grad Dezimalminuten umwandeln.

Hier eine Formel:

Dezimalgrad:
4737974 = 47°37974 = 47,37974

Grad Dezimalminuten:
47,37974 - 47 = 0,37974
0,37974 * 60 = 22,7844

47° 22,7844"

Wenn du die Sekunden noch haben willst dann das gleiche nochmal:

22,7844 - 22 = 0,7844'
0,7844 * 60 = 47,064"

47° 22' 47,064"
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.11.2014, 08:32
Beitrag #3
RE: Umwandlung von Koordinaten
Vielen Dank itAxel. Ich scheine mich jedoch falsch ausgedrückt zu haben. Die Umrechnung ist nicht das Problem, sondern genau der Syntax für die Umwalndlung. Wie programmiere ich das? Wie schneide ich von einer (einem?) Float die betreffenden Stellen ab? Wie separiere ich also die 47, und wie kriege ich die 37974 in eine Variable, die ich mit 60 multiplizieren kann?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.11.2014, 11:03
Beitrag #4
RE: Umwandlung von Koordinaten
kann ich das nicht auch so realisieren?

org = float
float nach int
float minus int
damit muss ich den ursprünglichen Wertebereich nicht kennen.

oder falsch gedacht?

Gruss
Eberhard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.11.2014, 11:46 (Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2014 11:47 von tito-t.)
Beitrag #5
RE: Umwandlung von Koordinaten
hallo,
explizite Typenumwandlung in C geht mit Typecasting.

wenn du einen Intwert in float umrechnen willst, schreibst du (float) davor, anders herum (int),
also

Code:
float f=12.345;
int i=9000, j;

j=(float)f; // ergibt j=12
f=(int) i;  // ergibt 9000,000
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.11.2014, 17:32
Beitrag #6
RE: Umwandlung von Koordinaten
PHP-Code:
float WERT 4737974;
int _WERT;
float TMP_WERT;
long DEVIDER 1;
int GRAD;
int MINUTE;
float SEKUNDE;

// Die while-Schleife liefert den Teiler für die Grad Berechnung, falls der 
// WERT nicht immer die gleiche Anzahl hat
// Wenn die Anzahl der Stellen immer gleich bleibt kann man die while-Schleife weglassen
_WERT WERT;
while(
_WERT) {
  
DEVIDER *= 10;
  
_WERT /= 10;
}
  
GRAD WERT DEVIDER;
TMP_WERT = ((WERT DEVIDER) - GRAD) * 60;
MINUTE TMP_WERT;
SEKUNDE = (TMP_WERT MINUTE) * 60

Ergebnis:
GRAD = 47
MINUTE = 22
SEKUNDE = 47.07
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Umwandlung von buffer in long Wampo 13 1.004 19.12.2015 10:53
Letzter Beitrag: Wampo
  Umwandlung von Array in String Wampo 2 528 09.12.2015 21:58
Letzter Beitrag: Wampo
  Umwandlung Hex in Dez therealnerd 2 1.113 26.03.2014 16:07
Letzter Beitrag: burgi650

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste