6 votes

Convertir lat/lon en code postal / nom de quartier

J'ai une grande collection de photos avec des emplacements GPS, codés en coordonnées lat/lon, la plupart à Los Angeles. J'aimerais les convertir en (1) codes postaux, et (2) noms de quartiers. Existe-t-il des services web gratuits ou des bases de données pour le faire ?

Le mieux que j'ai pu faire jusqu'à présent est de récupérer les polygones du voisinage à partir de la base de données de l'UE. Page du LA times et essayer de trouver dans quel polygone se trouve chaque coordonnée. Cependant, cela pourrait représenter beaucoup de travail, et toutes mes coordonnées ne sont pas à LA. Pour ce qui est des codes postaux, voici 2004 base de données est le meilleur que j'ai pu trouver, mais les codes postaux sont codés comme des coordonnées uniques au lieu d'un polygone. Le mieux que je puisse faire est donc de trouver la distance minimale entre une coordonnée donnée et les coordonnées du code postal, ce qui n'est pas optimal.

J'avais l'impression que google-maps ou open-street-maps devraient être en mesure de le faire (puisqu'ils semblent "savoir" exactement où se trouve chaque quartier et code postal), mais je ne trouve aucune API pour effectuer les recherches / requêtes.

14voto

scttl Points 450

Vous pouvez maintenant le faire directement dans R même, grâce à l'outil plutôt génial ggmap paquet.

Comme d'autres l'ont mentionné, vous ferez du géocodage inversé en utilisant l'API de Google Maps (et donc limité à 2 500 requêtes par jour), mais c'est aussi simple que cela :

library("ggmap")

# generate a single example address
lonlat_sample <- as.numeric(geocode("the hollyood bowl"))
lonlat_sample  # note the order is longitude, latitiude

res <- revgeocode(lonlat_sample, output="more")
# can then access zip and neighborhood where populated
res$postal_code
res$neighborhood

1voto

PravinCG Points 5090

Utilice Géocodage inversé pour convertir vos lat/lon en adresses. Il y a cependant une limite au nombre de requêtes par jour.

1voto

rengis Points 4733

Voici une belle article de blog avec des exemples comment géocoder et géocoder inversé en utilisant google-maps.

0voto

Marcelo Points 5575

Essaie celle-là :

http://www.usnaviguide.com/zip.htm

Il y a une certaine limite quant au nombre de requêtes par jour que vous pouvez effectuer sur le site, mais ils vendent également la base de données complète, qui change tous les quelques mois. Désolé, je ne connais pas de ressources gratuites.

0voto

yosukesabai Points 2693

Comme d'autres l'ont suggéré, les géocoder en adresse de rue devrait fonctionner pour le code postal. Je ne suis pas trop sûr pour le quartier, parce que vous devrez peut-être regarder si le numéro de rue est impair/pair pour voir s'il est situé de quel côté de la route qui détermine le quartier.

Une autre méthode consiste à préparer une entité polygonale SIG (fichier de forme ESRI par exemple), à tester chaque point par rapport à cet ensemble de polygones et à voir lequel il intersecte.

Le code postal est très simple, vous pouvez télécharger le fichier de forme à partir du recensement.

http://www.census.gov/cgi-bin/geo/shapefiles2010/main

Le voisinage est plus difficile, je suppose. Dans une autre partie des États-Unis, j'ai dû créer mon propre fichier de forme en combinant les définitions des autorités municipales, des sites Web immobiliers, des journaux, etc. pour qu'il ressemble à ce que les gens pensent être un quartier de la ville sans qu'il y ait de chevauchement ou de vide. Cela peut prendre un certain temps pour composer un tel ensemble de polygones. Vous pouvez utiliser le "groupe de blocs" de recensement, ou même le "bloc" de recensement de la page ci-dessus et les fusionner.

Une fois que vous avez préparé les polygones, il existe quelques outils SIG dans différents environnements (exécutable autonome, programme GUI, API c/python/sql etc, probablement R aussi, pour faire l'intersection des polygones et des points.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X