Frage

Dummy -Frage hier. Ich entwickle eine App, die auf Ortsbewussten Informationen abholt. Ich erhalte Standortkoordinaten auf folgende Weise: lat =+aaa.bb.cc.dd & lon =+aaa.bb.cc.dd & datum = wgs84

Wie konvertiere ich diese Koordinaten in den Standard -Breitengrad -Längengrad mit einzelnen Punkten? Jetzt sieht es so aus, als würde der Client eine IP -Adress -Suche anfordern.

War es hilfreich?

Lösung

wgs84 = '123.12.34.56'
deg, minute, second, fraction = wgs84.split(/\./).map(&:to_i)      # Ruby 1.9
deg, minute, second, fraction = wgs84.split(/\./).map {|x| x.to_i} # Ruby 1.8
deg += minute / 60.0 + second / 3600.0 + fraction / 360000.0
puts deg    # => 123.20970370370371

Nimmt die Zeichenfolge mit der WGS84 -Koordinate darin, teilt sie auf die Perioden, konvertiert die Ergebnisse aus dem Text '34' zu numerisch 34, und dann die Aufteilung, die erforderlich ist, um die Minuten, Sekunden und Brüche von Sekunden in schwimmende Punkteinstellungen zu konvertieren, die dem Breitengrad (oder Längengrad) hinzugefügt wurden.

Andere Tipps

Ermutigt von @myrddins Beinahe-Verabschied, dass er einen kleinen Fehler gemacht hat, veröffentliche ich eine Antwort in einem offensichtlichen Versuch, Vertreter zu sammeln.

Ich vermute, dass

123.12.34.56

sollte als 123D12M34.56s interpretiert und in solche Dezimalgrade umgewandelt werden:

123+12/60+34.56/3600
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top