2011-01-03 10 views
1

Ich arbeite an einer mobilen Mapping-Anwendung (derzeit iOS, eventuell Android) - und ich habe Probleme damit, die umgekehrte Geocodierung von lat/long in Country/State zu unterstützen, ohne einen Online-Service zu verwenden.Techniken für Offline-Reverse-Geocoding auf einem mobilen Gerät?

Apples Reverse-Geocoding-API hängt von Google als Backend ab und funktioniert gut, solange es verbunden ist. Ich könnte ähnliche Funktionen auch mit dem Open Street Maps-Projekt oder einer beliebigen Anzahl anderer Webdienste erreichen.

Ich möchte jedoch eine C-Bibliothek erstellen, die ich auch offline in meiner Anwendung aufrufen kann, indem ich die GPS-Koordinaten übergebe und das Land und/oder den Staat an diesen Koordinaten zurücksende. Ich brauche keine feinere Granularität als State-Level, also ist der Datensatz nicht riesig.

Ich habe Beispiele gesehen, wie man das auf einem Server macht, aber nie etwas, das für ein mobiles Gerät angemessen ist.

Ich habe gehört Spatialite könnte eine Lösung sein, aber ich bin mir nicht sicher, wie es funktioniert auf iOS, und ich frage mich, ob es für das Problem übertrieben sein kann.

Was sind einige empfohlene Techniken, um dies zu erreichen?

+1

mögliches Duplikat von [Reverse Geocodierung ohne Web-Zugriff] (http://stackoverflow.com/questions/1425149/reverse-geocoding-without-web-access) –

Antwort

4

Radven

Sie müssen die Shape-Dateien erhalten (lat/lng Umriss) alle Verwaltungseinheiten (US-Staaten, Länder, usw.). Es gibt viele Quellen im öffentlichen Bereich für diese. Zum Beispiel hat die NOAA Shape-Dateien für die US-Bundesstaaten und Territorien Sie herunterladen können:

http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm

Sobald Sie die Shape-Dateien bekommen Sie eine Shape-Datei-Leser verwenden können, um zu testen, ob ein lat/lng innerhalb einer Form. Es gibt Open-Source-Leser in C, nur google. Ich habe Sachen bei Sourceforge für Shapefiles gesehen, aber diese selbst nicht benutzt.

Das Team bei OpenGeoCode.Org

0

Wenn Sie für einen Ansatz freuen auf einem Quadtree basiert, versuchen Yggdrasil. Es erzeugt einen Quadtree basierend auf Länderpolygondaten. Ein Ruby-Beispielskript kann here gefunden werden.

Verwandte Themen