Autor |
Beitrag |
ub60
      
Beiträge: 764
Erhaltene Danke: 127
|
Verfasst: Di 13.12.11 00:27
Hallo Leute,
auf meinem Handy habe ich bei einem GPS-Programm Daten in der folgenden Art gefunden:
Quelltext 1: 2: 3:
| global\12\lat=@Variant(\0\0\0\x87\x42R\x10t) global\12\lon=@Variant(\0\0\0\x87\x41Vff) global\12\name=Punkt13 |
Dahinter verstecken sich Geokordinaten in der Art:
Quelltext 1: 2:
| 52° 33.475 013° 46.743 |
oder
Quelltext
Hat jemand eine Idee, wie die Codierung funktioniert bzw. in welcher Sprache das abgespeichert ist (um dort weiter zu recherchieren).
Danke!
ub60
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Di 13.12.11 14:10
Hab es mal aus Jux in Googlemaps eingegeben.
"52° 33.475" ergibt Sums'ka oblast, Ukraine, nahe der Straße T1908
"013° 46.743" ist der Golf von Aden
Dein Handy kommt wohl viel rum.
Dazu 2 Links:
www.geocaching.de/index.php?id=20
www.gps-und-geocaching.de/workshop_01.htm
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Di 13.12.11 14:31
Passt nicht, da hast Du was falsch eingegeben. Das ist ein Ort bei Berlin:
maps.google.de/maps?...c=6&t=m&z=16Moderiert von Narses: Beiträge zusammengefasst ub60 hat folgendes geschrieben : |
Hat jemand eine Idee, wie die Codierung funktioniert bzw. in welcher Sprache das abgespeichert ist (um dort weiter zu recherchieren). |
Jupp, das ist immer das Selbe, nur in einer anderen Schreibweise.
Üblich ist:
Dezimal
Grad, Minute
Grad, Minute, Sekunde
Die lassen sich untereinander umrechnen. Genau wie Du Stunden in Dezimal umrechnen würdest. Musst halt nur damit rechnen, dass eine Minute 60 Sekunden hat.
' = Minute
" = Sekunde
Wenn Du also die Angabe 5° 10.5' hast, dann wäre das das Selbe wie 5° 10' 30"
Und umgekehrt genauso.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
baka0815
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Di 13.12.11 14:56
Ich glaube er möchte wissen, wie er aus
Quelltext 1: 2:
| global\12\lat=@Variant(\0\0\0\x87\x42R\x10t) global\12\lon=@Variant(\0\0\0\x87\x41Vff) |
die tatsächlichen Werte bekommt.
lon dürfte longitude, also der Längengrad sein.
lat dementsprechend latitude, also der Breitengrad.
Die Frage ist, wie die Werte im Variant zu verstehen sind. \x87 entspricht eigentlich dem Unicode-Zeichen 0087, \x42 entspricht B, etc. Ob dir das hilft, wage ich jedoch zu bezweifeln.
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Di 13.12.11 15:22
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
ub60 
      
Beiträge: 764
Erhaltene Danke: 127
|
Verfasst: Di 13.12.11 18:19
@baka0815:
Die Sache mit "lat" und "lon" war schon klar, mich interessiert nur, wie man von "52.55792" auf "(\0\0\0\x87\x42R\x10t)" kommt (oder auch umgekehrt).
Danke für den Tipp mit Unicoden, da irritieren mich nur die jeweils letzten Zeichen "R", "t" und "Vff". Eigentlich dachte ich, dass hier eine Fließkommazahl mit 4 oder 6 Byte entsprechend IEE754 verschlüsselt wird.
@Tilo:
Du musst natürlich beide Zahlen gleichzeitig (getrennt von einem Leerzeichen) eingeben, dann landest Du auf einem Radweg irgendwo zwischen Altlandsberg und Strausberg, also noch in Mitteleuropa
ub60
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Di 13.12.11 18:35
ub60 hat folgendes geschrieben : | Danke für den Tipp mit Unicoden, da irritieren mich nur die jeweils letzten Zeichen "R", "t" und "Vff". Eigentlich dachte ich, dass hier eine Fließkommazahl mit 4 oder 6 Byte entsprechend IEE754 verschlüsselt wird. |
Naja, das sieht mir nach BLOB-Encoding wie in JSON aus.
Das ergibt dann (in Hex:)
Quelltext 1: 2:
| lat: 00 00 00 87 42 52 10 74 lon: 00 00 00 87 41 56 66 66 |
Mich irritiert ja, warum sie 41 und 42 auch escapen, das sind A und B.
Oh. Während dem Tippen hier rausgefunden
Ignoriere die 87 (das ist wohl eine Datenformatkennung, für den Variant) und dann kommen 4 Byte IEEE Big-Endian Single.
Quelltext 1: 2:
| 42 52 10 74 = 52.5160675048828096 41 56 66 66 = 13.3999996185302736 |
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
ub60 
      
Beiträge: 764
Erhaltene Danke: 127
|
Verfasst: Di 13.12.11 18:57
Martok hat folgendes geschrieben : | Naja, das sieht mir nach BLOB-Encoding wie in JSON aus. |
Genau das habe ich gesucht. Du bist mein Held!
ub60
PS: Gearde habe ich gemerkt, dass die entschlüsselten Koordinaten zur Berliner Innenstadt gehören, das war aber ein weiterer Wegpunkt. Hier haut wohl die Indizierung im Handy nicht ganz hin. Sonst ist alles i.O.
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Di 13.12.11 19:25
Frust ich hatte es Rückwärts mit 52.55792 versucht, aber bei keinem Datentyp eine Entsprechung gefunden....
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
ub60 
      
Beiträge: 764
Erhaltene Danke: 127
|
Verfasst: Di 13.12.11 20:22
bummi hat folgendes geschrieben : | Frust ich hatte es Rückwärts mit 52.55792 versucht, aber bei keinem Datentyp eine Entsprechung gefunden.... |
Ich hatte mich auch erst mit dem Datenformat beschäftigt, als ich merkte, dass das Handy bei mehr als 10 Wegpunkten die Daten zyklisch vertauscht
Danke für die Mühe!
ub60
|
|