Question

J'ai une base de données d'adresses et j'ai essayé de trouver la latitude et la longitude en utilisant Google Geocoding et l'API Yahoo . Existe-t-il d'autres API ou programmes populaires? J'utilise la plate-forme Ubuntu.

Était-ce utile?

La solution

Je connais au moins un autre système de géocodage, OpenStreetMap . La seule différence majeure que j'ai constatée avec ces API est le niveau de détail de chacune. OpenStreetMap a beaucoup moins de données, mais est beaucoup plus facile à intégrer avec des données personnalisées. De plus, je pense que les cartes produites par Google sont les plus belles des trois.

Autres conseils

J'utilisais habituellement le service de géocodage de Google Maps sur HTTP, ce qui vous renvoyait un fichier Json ou XML à votre guise. Recherchez ici pour plus d'informations à ce sujet.

Une autre option peut être GeoNames.org . Il fournit également des services intéressants et des bibliothèques clientes.

Dans les deux cas que vous mentionnez, si vous les traitez en masse ou si vous ne montrez pas de carte à l'utilisateur au moment d'interroger l'API, vous enfreignez les conditions d'utilisation.

Une meilleure solution pour répondre à vos besoins serait quelque chose comme LiveAddress . En fait, je travaille à SmartyStreets , où nous le développons nous-mêmes. Il n'y a pas de restrictions de licence qui vous empêcheraient d'exécuter des millions des adresses. En plus de renvoyer les coordonnées, LiveAddress vérifiera également l’existence d’adresses et les normalisera pour vous. Ceci est utile pour éliminer les doublons et présente de nombreux avantages pour l'entreprise.

Si vous avez d'autres questions relatives à l'adresse, je serai ravi de vous aider personnellement.

Vous pouvez également trouver geocoder.us utile.

En utilisant YQL, vous pouvez obtenir une liste des prévisions possibles Premier pas: Géocodage inversé

SELECT woeid 
FROM geo.places 
WHERE text="##LATITUDE##, ##LONGITUDE##"

appliquez ensuite un filtre pour classer les résultats par lieuType. Cette aide U pour commander des prévisions par précision au niveau de la carte (ville, code postal, région, ....)

SELECT woeid 
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" | 
SORT(field="placeTypeName.code")

Utilisez maintenant simile join pour obtenir toutes les prévisions par woeid résultant de la dernière requête et filtrer les résultats nuls

SELECT channel 
FROM weather.woeid 
WHERE w in (
    SELECT woeid 
    FROM geo.places 
    WHERE text="##LATITUDE##, ##LONGITUDE##" | 
    SORT(field="placeTypeName.code")) 
AND channel.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top