75 votes

Comment faire pour obtenir la longitude et la latitude d'une adresse de rue par programme (et légalement)

Soi-disant, il est possible d'obtenir ce à partir de Google Maps ou de certaines de ces services. (Adresses des états-unis n'est pas assez bon.)

70voto

Sijin Points 3682

Le terme que vous cherchez est de géocodage et oui, Google fait de fournir ce service.

22voto

Tim Farley Points 5809

En plus de ces de géocodage de Google web service, il y a aussi un autre service fourni par Yahoo. Dans un récent projet où le géocodage est fait avec l'interaction de l'utilisateur, j'ai compris le soutien pour les deux. La raison en est, j'ai trouvé que, particulièrement à l'extérieur des états-UNIS, de leur manipulation de plus obscur des emplacements varie largement. Parfois, Google sera la meilleure réponse, parfois Yahoo.

Un piège à connaître: si Google pense vraiment qu'ils ne savent pas où votre place est, ils seront de retour a 602 erreur indiquant l'échec. Yahoo, d'autre part, si l'on peut peler une ville/province/état/etc de votre mauvaise adresse, sera de retour l'emplacement du centre de la ville. Donc, vous ne devez payer l'attention sur les résultats que vous obtenez pour voir si elles sont vraiment ce que vous voulez. Il y a des champs auxiliaires dans certains des résultats que vous dire à ce sujet: Yahoo appels de ce champ "précision" et Google appelle cela la "précision".

15voto

Adam Davis Points 47683

Si vous voulez faire cela, sans compter sur un service, puis vous téléchargez le TIGRE des fichiers de formes à partir du Recensement des états-unis.

Vous regardez en haut de la rue qui vous intéresse, ce qui aura plusieurs segments. Chaque segment doit avoir une adresse de début et l'adresse de fin, et vous interpoler le long du segment de trouver l'endroit où le segment de votre numéro de la maison se trouve.

Cela va vous fournir un lon/lat paire.

Gardez à l'esprit, cependant, que les services en ligne emploient une grande partie de l'adresse de la vérification et de la correction, qui que vous auriez à double ainsi d'obtenir de bons résultats.

Notez aussi que aussi beau que la gratuité des données est, il n'est pas parfait - la dernière rues ne sont pas là (il se peut que les données Google utilise), et les rues peuvent être hors de leur emplacement réel par certains montant en raison de l'enquête inexactitudes. Mais pour 98% des besoins de géocodage, il fonctionne parfaitement, est gratuit, et vous contrôlez tout ce que vous êtes à la réduction des dépendances de votre application.

Openstreetmap a pour objectif de cartographie de tout le monde, mais ils ne sont pas tout à fait là, il vaut la peine de garder un œil sur les car ils fournissent leurs données sous licence CC

Cependant, beaucoup (la plupart?) d'autres pays ne sont mappés par le gouvernement ou les services pour lesquels vous devez payer des frais. Si vous n'avez pas besoin de géocodage beaucoup de données, puis à l'aide de Google, Yahoo, ou certaines autres gratuite dans le monde entier des services de cartographie peut être suffisant.

Si vous avez de géocoder une grande quantité de données, alors vous serez mieux servis par la location de la carte de données à partir d'un prestataire majeur, tels que teleatlas.

9voto

peSHIr Points 3911

Vous pouvez également essayer OpenStreetMap NameFinder, qui contient de l'open source, de type wiki rue de données (potentiellement) à l'ensemble du monde. NameFinder cessera d'exister à la fin du mois d'août, mais Nominatim est son remplacement.

7voto

Richard Watson Points 1863

Google vous obliger à afficher une Carte Google map avec leurs données, avec un maximum de 2,5 k (a 25k) HTTP demandes par jour. Utile, mais vous devez regarder d'utilisation.

Ils n'ont

http://groups.google.com/group/Google-Maps-API/web/resources-non-google-geocoders

(Google a depuis retiré. Si vous voyez un duplicata ou le cache, je vais le lien).

...dans lequel j'ai trouvé http://www.geonames.org/ qui a à la fois téléchargeable db, web gratuit et un service commercial service web.

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