Wie lookup eine Postleitzahl aus einer GPS-Koordinate?
Sagen, ich habe eine web-service-API akzeptiert eine Postleitzahl als parameter, aber ich habe nur Zugriff auf eine GPS-Koordinate (Breitengrad, Längengrad). Wie kann ich dynamisch Suche die Postleitzahl, die Koordinate gehört?
Mache ich diese Arbeit auf dem iPhone, hoffentlich gibt es eine einfache Möglichkeit, dies zu tun innerhalb des CoreLocation-APIs, die ich bin mit Blick in die Dokumentation.
InformationsquelleAutor der Frage jpm | 2009-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde versuchen, Check-out der Dokumente für die reverse geocoder im 3.0 SDK, wenn ich du wäre. Ich kann nicht sagen, was es ist, aber man könnte sagen, dass sich die reverse geocode gibt eine Ortsmarke, und dann, wenn Sie sehen, dass die Marker in der SDK, finden Sie vielleicht, dass es über eine PLZ-Eigenschaft. Wer weiß?
InformationsquelleAutor der Antwort Jane Sales
Diese Seite bietet eine Datenbank (csv-Datei), der alle Postleitzahlen in den USA, mit Ihren breiten-und Längengrad.
http://zips.sourceforge.net/
Die Datei ist 500 Kb entpackt. Hier die ersten Zeilen der Daten:
Dump der Daten in eine lokale Datenbank. Verwenden Sie die Haversine-Formel zu vergleichen, Ihre Koordinaten und diejenigen, die in der Datenbank zu finden der nächstgelegenen Punkt. CoreLocation hat eine Funktion getDistanceFrom, die Sie verwenden, zu.
Diese Seite hat eine Haversine-Funktion in c und info über das zippt Datenbank.
http://www.jaimerios.com/?p=39
Edit: Hier eine tolle Erklärung von Google über die Berechnung der Entfernungen. Es nutzt MySQL und PHP, aber die SQL für die Suche nach nächsten Punkte ist auch hier sinnvoll. Es würde wahrscheinlich schneller sein, Abfragen mit SQL, sondern als die getDistanceFrom Funktion.
http://code.google.com/support/bin/answer.py?answer=87134&topic=11364
Finden Sie die nächsten 20 Standorten innerhalb eines radius von 25 Meilen um die 37, -122-Koordinate:
Suche nach Kilometern statt Meilen, ersetzen 3959 mit 6371.
InformationsquelleAutor der Antwort nevan king
Diese Art von Verweis wird als "Reverse-Geolocation."
Das erste, was Sie tun müssen, ist, konvertieren Sie die lat/lng Daten aus CLocation Objekt zu Grad...
in der locationManager Funktion (die aufgerufen wird, sobald Sie erhalten eine Standort-Aktualisierung)....
Code:
Von dort aus senden Sie die lat-und lng-strings an ein backend-webservice-like "GeoNames.org" oder die Google Maps API ... und Sie können die nächste Stadt oder Adresse.
InformationsquelleAutor der Antwort Robert Harvey
Es ist eine Datenbank, produziert von der US-Volkszählung - die Tiger-Datenbank. Ich glaube, es ist eine Möglichkeit, um zipcode lookup bestimmten lat/long.
Ich Wette, wenn Sie gesucht Tiger Postleitzahl finden Sie vielleicht etwas. sehen hier zum Beispiel. Es scheint, es ist ein Perl-Modul über CPAN, das dies tut, also sollte es nicht unmöglich sein.
InformationsquelleAutor der Antwort Cheeso
Google bietet eine Kostenlose reverse-geocoding-service. Sie können es direkt benutzen, oder versuchen die Temboo-SDK bietet einen bequemen Zugang in mehreren Sprachen, darunter auch in Objective-C (mit Codebeispielen).
Check-out https://www.temboo.com/library/Library/Google/Geocoding/GeocodeByCoordinates/
InformationsquelleAutor der Antwort mflaming