Question

Étant donné une latitude et une longitude, quel est le moyen le plus simple de trouver le nom de la ville et le code postal américain de cet emplacement.

(C'est similaire à https://stackoverflow.com/questions/23572/latitude-longitude-database, sauf que je souhaite convertir dans le sens opposé.)


Question connexe : Obtenir l'adresse postale à la paire lat/long

Était-ce utile?

La solution

Il s'agit du service Web à appeler.http://developer.yahoo.com/search/local/V2/localSearch.html

Ce site propose des services Web corrects, mais pas exactement ce que vous demandez ici.http://www.usps.com/webtools/

Autres conseils

Tous les services en ligne mentionnés et leurs concurrents proposent un « géocodage inversé » qui fait ce que vous demandez : convertir les coordonnées lon/lat en une adresse postale quelconque.

Si vous n'avez besoin que des codes postaux et/ou des villes, j'obtiendrais la base de données des codes postaux et la base de données des zones urbaines du US Census Bureau, qui est GRATUITE (payée par vos impôts). http://www.census.gov/geo/www/cob/zt_metadata.html.

À partir de là, vous pouvez soit créer votre propre algorithme de recherche pour les données spatiales, soit utiliser l'une des bases de données spatiales telles que Microsoft SQL Server, PostGIS, Oracle Spatial, ArcSDE, etc.

Mise à jour:Les données du recensement de 2010 peuvent être consultées à l'adresse suivante :http://www2.census.gov/census_2010/

Vous avez deux options principales :

Utiliser un service de géocodage inversé

  • Google ne peut être utilisé qu'avec une carte Google Map intégrée sur la même page, je ne le recommande donc pas, sauf si c'est ce que vous faites.
  • Yahoo en a un bon, voyez http://developer.yahoo.com/search/local/V3/localSearch.html
  • Je n'ai pas utilisé OpenStreetMap.Leurs cartes semblent très détaillées et complètes, et s'améliorent toujours, mais je m'inquiéterais de la latence et de la fiabilité, et de savoir si leurs données d'adresse sont complètes (les données d'adresse ne sont pas directement visibles sur une carte, et OpenStreetMap est avant tout une carte interactive. ).

Utilisez une carte des codes postaux

Le recensement américain publie une carte des codes postaux américains ici.Ils construisent cela à partir de leur plus petite unité statistique, un îlot de recensement, qui correspond dans la plupart des cas à un îlot urbain.Pour chaque bloc, ils trouvent quel code postal est le plus courant sur ce bloc (la plupart des blocs n'ont qu'un seul code postal, mais les blocs proches de la frontière entre les codes postaux peuvent en avoir plusieurs).Ils regroupent ensuite tous les blocs avec un code postal donné dans une seule zone appelée zone de tabulation du code postal.Ils publient une carte de ces zones au format shapefile ESRI.

Je le sais parce que j'ai écrit une bibliothèque Java et un service Web qui (entre autres choses) utilise cette carte pour renvoyer le code postal pour une latitude et une longitude données.Il s'agit d'un produit commercial, donc il ne conviendra pas à tout le monde, mais il est rapide, facile à utiliser et résout ce problème spécifique sans API.Vous pouvez en savoir plus sur ce produit ici :

http://askgeo.com/database/UsZcta2010

Et à propos de toutes vos offres géographiques ici :

http://askgeo.com

Contrairement aux solutions de géocodage inversé, qui ne sont disponibles que sous forme d'API Web car exécuter votre propre service serait extrêmement difficile, vous pouvez exécuter cette bibliothèque sur votre propre serveur et ne pas dépendre d'une ressource externe.

Si le volume d’appels vers le service devient trop élevé, vous devez absolument envisager d’obtenir votre propre ensemble de données postales.Dans la plupart des cas, cela fournira toutes les informations dont vous avez besoin, et il existe de nombreux outils de base de données pour indexer les données de localisation (c'est-à-direPostGIS pour PostgreSQL).

Vous pouvez acheter un abonnement assez bon marché aux codes postaux avec des informations de latitude et de longueur ici : http://www.zipcodedownload.com/

Ou le géocodage inversé de Google

lien

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

où 0 est la latitude 1 est la longitude

Un autre fournisseur de géocodage inversé qui n'a pas encore été répertorié ici est OuvrirStreetMap:vous pouvez utiliser leur Nominatif service de recherche.

OSM a l'avantage (potentiellement ?) supplémentaire d'être entièrement modifiable par l'utilisateur (comme un wiki) et donc d'avoir un système de licence très libéral pour toutes ces données.Pensez à cela aux données cartographiques open source.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top