Frage

Wie lässt sich anhand eines Breiten- und Längengrads am einfachsten der Name der Stadt und die US-Postleitzahl dieses Ortes ermitteln?

(Dies ähnelt https://stackoverflow.com/questions/23572/latitude-longitude-database, außer ich möchte in die entgegengesetzte Richtung konvertieren.)


Verwandte Frage: Erhalten Sie die Straßenadresse als Breiten-/Längenpaar

War es hilfreich?

Lösung

Dies ist der aufzurufende Webdienst.http://developer.yahoo.com/search/local/V2/localSearch.html

Diese Website verfügt über gute Webdienste, aber nicht genau das, was Sie hier verlangen.http://www.usps.com/webtools/

Andere Tipps

Alle genannten Online-Dienste und ihre Konkurrenten bieten „Reverse Geocoding“ an, das genau das tut, was Sie verlangen: Längen- und Breitengradkoordinaten in eine Art Straßenadresse umwandeln.

Wenn Sie nur die Postleitzahlen und/oder Städte benötigen, würde ich die Postleitzahlen- und Stadtgebietsdatenbank vom US Census Bureau erhalten, die KOSTENLOS ist (bezahlt durch Ihre Steuergelder). http://www.census.gov/geo/www/cob/zt_metadata.html.

Von dort aus können Sie entweder Ihren eigenen Suchalgorithmus für die räumlichen Daten entwickeln oder eine räumliche Datenbank wie Microsoft SQL Server, PostGIS, Oracle Spatial, ArcSDE usw. nutzen.

Aktualisieren:Die Daten der Volkszählung 2010 finden Sie unter:http://www2.census.gov/census_2010/

Sie haben zwei Hauptoptionen:

Verwenden Sie einen Reverse-Geokodierungsdienst

  • Google kann nur in Verbindung mit einer eingebetteten Google Map auf derselben Seite verwendet werden, daher empfehle ich es nicht, es sei denn, Sie tun dies.
  • Yahoo hat einen guten, sehen Sie http://developer.yahoo.com/search/local/V3/localSearch.html
  • Ich habe OpenStreetMap nicht verwendet.Ihre Karten sehen sehr detailliert und gründlich aus und werden immer besser, aber ich mache mir Sorgen um die Latenz und Zuverlässigkeit sowie die Vollständigkeit ihrer Adressdaten (Adressdaten sind auf einer Karte nicht direkt sichtbar, und OpenStreetMap ist in erster Linie eine interaktive Karte). ).

Verwenden Sie eine Karte der Postleitzahlen

Die US-Volkszählung veröffentlicht eine Karte der US-Postleitzahlen Hier.Diese bilden sie aus ihrer kleinsten statistischen Einheit, einem Census Block, der in den meisten Fällen einem Stadtblock entspricht.Sie finden für jeden Block heraus, welche Postleitzahl in diesem Block am häufigsten vorkommt (die meisten Blöcke haben nur eine Postleitzahl, aber Blöcke nahe der Grenze zwischen Postleitzahlen können mehr als eine haben).Anschließend fassen sie alle Blöcke mit einer bestimmten Postleitzahl in einem einzigen Bereich zusammen, der als Tabellierungsbereich für Postleitzahlen bezeichnet wird.Sie veröffentlichen eine Karte dieser Gebiete im ESRI-Shapefile-Format.

Ich weiß davon, weil ich eine Java-Bibliothek und einen Webdienst geschrieben habe, der (unter anderem) diese Karte verwendet, um die Postleitzahl für einen bestimmten Breiten- und Längengrad zurückzugeben.Da es sich um ein kommerzielles Produkt handelt, ist es nicht jedermanns Sache, aber es ist schnell, einfach zu verwenden und löst dieses spezielle Problem ohne API.Über dieses Produkt können Sie hier lesen:

http://askgeo.com/database/UsZcta2010

Und zu all Ihren geografischen Angeboten hier:

http://askgeo.com

Im Gegensatz zu Reverse-Geokodierungslösungen, die nur als Web-APIs verfügbar sind, da die Ausführung eines eigenen Dienstes äußerst schwierig wäre, können Sie diese Bibliothek auf Ihrem eigenen Server ausführen und sind nicht auf eine externe Ressource angewiesen.

Wenn das Anrufaufkommen bei diesem Dienst zu hoch wird, sollten Sie auf jeden Fall darüber nachdenken, sich einen eigenen Satz postalischer Daten anzuschaffen.In den meisten Fällen werden dadurch alle Informationen bereitgestellt, die Sie benötigen, und es gibt zahlreiche Datenbanktools zum Indizieren von Standortdaten (z. B.PostGIS für PostgreSQL).

Hier können Sie relativ günstig ein Abonnement für Postleitzahlen mit Lat- und Long-Angaben erwerben: http://www.zipcodedownload.com/

Oder die umgekehrte Geokodierung von Google

Verknüpfung

http://maps.google.com/maps/geo?output=xml&q={0},{1}&key={2}&sensor=true&oe=utf8

Dabei ist 0 der Breitengrad und 1 der Längengrad

geonames verfügt über einen umfangreichen Satz von WS, die (unter anderem) damit umgehen können:

http://www.geonames.org/export/web-services.html#findNearbyPostalCodes
http://www.geonames.org/export/web-services.html#findNearbyPlaceName

Ein weiterer Reverse-Geokodierungsanbieter, der hier noch nicht aufgeführt ist, ist OpenStreetMap:Sie können ihre verwenden Nominiert Suchdienst.

OSM hat (möglicherweise?) den zusätzlichen Vorteil, dass es vollständig vom Benutzer bearbeitet werden kann (Wiki-ähnlich) und daher über ein sehr liberales Lizenzsystem für alle diese Daten verfügt.Denken Sie an Open-Source-Kartendaten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top