ubuntuusers.de

Suche Online-Geodatendienst, der Städte/Länder zu gegebenen Geo-Koordinaten liefert (korrigiert)

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

Arubeto

Anmeldungsdatum:
4. Dezember 2007

Beiträge: 384

Hallo,

ich möchte von einem Python-Script aus, in das ich Fotos lade, welche Geo-Koordinaten in den Exif-Headern gespeichert haben, automatisch die Länder- und Ortsnamen über einen Webservice abfragen. Welcher online Geo-Dienst bietet solch eine Funktionalität an? Ich habe schon recht viel gesucht, bin aber noch nicht fündig geworden (bei GeoNames.org kann man - glaube ich - nur Strings abfragen (welcher Ort liegt in welchem Land etc.), aber Geosetter macht das ja auch irgendwie, leider habe ich noch nicht herausgefunden, wie das läuft)

Vielen Dank im Voraus für jeden Hinweis!

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Also liegt Dein Problem - anders als es der Titel vermuten lässt - bei der Suche nach einem Geodatendienst, der einem basierend auf Koordinaten Informationen über Land und Ort liefert?

Arubeto

(Themenstarter)

Anmeldungsdatum:
4. Dezember 2007

Beiträge: 384

Du hast recht, ich habe mich falsch ausgedrückt (und den Titel jetzt hoffentlich korrekt formuliert). Ja, so etwas suche ich.

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

Auch Geotag kann Ortsnamen eintragen und benutzt dazu geonames.org. Also muss es eine entsprechende API geben.

Arubeto

(Themenstarter)

Anmeldungsdatum:
4. Dezember 2007

Beiträge: 384

Ok, ich habe es geschafft, über Python aus den mit entsprechend ausgefüllten Exif-Tags versehenen Fotos die Geo-Koordinaten auszulesen und über das Python-Modul urllib mit den Funktionen urlopen bzw. urlretrieve den von GeoNames angebotenen Webservice "Extended Find nearby toponym / reverse geocoding" zu nutzen und Angaben zu Land- und Städte-Namen in Form einer xml-Datei in mein Programm zu laden. Die Anfragen an den WebService werden dabei in folgender Form gestellt: http://ws.geonames.org/extendedFindNearby?lat=53.33&lng=9.58

Leider bekomme ich für die gleichen Geo-Koordinaten, mit denen ich bei Google Maps oder OpenStreetMap exakte Positionen bekomme, bei diesem Dienst sehr ungenaue Ergebnisse.

Beispiel: in den Exif-Headern einer meiner Dateien sind folgende Werte gespeichert: Longitude: 53°, 33' 46" Latitude: 9°, 58' 42" Das ist mitten in Planten und Blomen in Hamburg.

Der Webservice von GeoNames gibt mir als Ortsnamen aber Kallmoor in Niedersachsen an, das ist über 40 km von Hamburg entfernt. (siehe Link oben) Woran kann das liegen? Sind die Angaben ohne Sekunden zu ungenau? Bei Wikipedia steht, dass eine Sekunde in Deutschland nur ca. 20 Metern entspricht. Das heißt, die Koordinaten dürften höchstens ca. 800-900 Meter in beide Richtungen falsch liegen.

Bin etwas ratlos, was mache ich falsch?

Arubeto

(Themenstarter)

Anmeldungsdatum:
4. Dezember 2007

Beiträge: 384

Ups, sorry, ich sollte nicht immer gleich posten, wenn ich nicht weiterkomme. Mein Fehler war: ich habe die GPS-Koordinaten so angeben, wie ich sie aus den Exif-Headern gelesen habe, in Grad, Minuten und Sekunden. Da liegt der Fehler, da diese Angaben im Sexagesimalen Zahlensystem (also zur Basis 60) sind, der Webservice aber die Parameter in dezimaler Schreibweise verlangt.

Jetzt funktioniert es!

Danke für die Hinweise!

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Wie kommst Du auf die Idee, dass 53°33'46" das selbe ist wie 53.33° (also dezimal) ?
und dass 9°58'42" das selbe wie 9.58° ?

Wenn ich die Gradangaben korrekt in Dezimalwerte umrechne, dann bekomme ich auch ein sinnvolles Ergebnis zurück:

http://ws.geonames.org/extendedFindNearby?lat=53.563&lng=9.978

liefert "Freie und Hansestadt Hamburg ... Eimsbüttel" - also gar nicht so verkehrt ...

edit: ... ok, du hast es inzwischen selber gefunden. ☺

LG,

track

Antworten |