Question

J'utilise http://maps.google.com/maps/geo ? service Web pour géocodage des adresses.

Le problème que j'ai est qu'une adresse plus complète ne donne pas nécessairement un géocodage plus précis.

passant Llantysilio par exemple, Denbighshire, Royaume-Uni est beaucoup plus précis que Llantysilio, Llangollen, Denbighshire, Royaume-Uni

L'attribut de précision dans le fichier XML ne semble pas très utile pour décider quelle adresse choisir.

Comment les autres personnes traitées cette question? Y at-il un bon moyen de choisir le meilleur géocodage qui fonctionne plus / tout le temps?

* modifier Un peu d'info - quand je mets l'adresse complète la première ligne de l'adresse est ignorée et le géocodage passe à un autre, mais exacte, adresse qui est une rue centrale située dans la ligne supplémentaire ajouté à l'adresse. Dans cet exemple, il prend la rue château au milieu llangollen, apparemment sans tenir compte Llantysilio.

Modifier par kdgregory: voici les deux demandes de l'API que j'ai utilisé (clé manquante de l'API ne semble pas être un problème):

http://maps.google.com/maps/geo?q=Llantysilio,+Denbighshire,+UK&sensor=false&output=xml

http://maps.google.com/maps/geo?q=Llantysilio,Llangollen,++Denbighshire,+UK&sensor=false&output=xml
Était-ce utile?

La solution 5

En fin de compte, je conclus qu'il ya beaucoup trop de soubresauts étranges dans la cohérence d'adresse avec le webservice de géocodage de Google au Royaume-Uni, mais a finalement réussi à trouver un moyen d'utiliser à la place des codes postaux, ce qui est beaucoup plus précis: comment faire

Autres conseils

Vous devez interpréter la précision de mon ami. Il y a généralement 2 parties à une précision, d'abord la macthing d'adresse. La deuxième partie est la partie importante. Vous pouvez géocodage quelque chose à un niveau de précision des États-Unis, ou un niveau de la ville, code postal barycentre, niveau interpolée de rue ou un niveau de précision de la parcelle réelle. Le premier exemple a 4 et le second est 9. Pour ce service supérieur est mieux.

Précision Valeur Description 0 précision inconnue. 1 précision au niveau des pays. 2 niveau Région (État, province, préfecture, etc.) précision. 3 précision de niveau sous-région (comté, municipalité, etc.). 4 Niveau ville (ville, village) précision. 5 précision de niveau Code postal (code postal). 6 précision de niveau de la rue. 7 précision de niveau d'intersection. 8 précision du niveau d'adresse. 9 Prémisse (nom de l'immeuble, nom de la propriété, centre commercial, etc.) précision de niveau.

Il est sans doute bon de noter que Google ne suit pas les spécifications XAL , mais les met en œuvre dans un sous-ensemble.

Alors, cela signifie que vous ne serez pas nécessairement être en mesure de le faire:

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

Parce qu'un pays et sous-localité peuvent être fournis en une zone administrative n'est pas.

Les données renvoyées est identifié avec une jauge de précision qui vous donne une idée relative de ce que vous pouvez attendre des données. Ainsi, vous pouvez stocker des objets et couper les parties de l'adresse complète à l'aide de cette variable et essayer de géocodage de telle façon - Il est cependant pas recommandée.

En règle générale, une adresse complète est (sans la voie) est une bonne façon de trouver l'emplacement général. Vous pouvez utiliser une partie de la logique pondérée préférentielle Google fournit pour affiner l'adresse.

par exemple. Utilisez le setViewPort ou SetCountryCode pour donner à vos recherches un peu plus de précision.

Rappelez-vous, géocodage est pas une science . Vous ne pouvez pas attendre des résultats cohérents.

A géocodage response.Placemark [0] via gmap vous pouvez vérifier ce que vous avez, et de prendre le niveau ou essayer à nouveau. J'ai choisi par défaut dans l'ordre

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

Il pourrait être plus logiquement nommé comme on le voit ci-dessus. gmaps 3 fonctionne un peu incompatible avec v2.

Vous pouvez essayer un hack très laid qui consiste à géocodage votre pleine et tous les sous-ensembles adresse des mots votre adresse contient, vous obtenez beaucoup de géocodage que vous utilisez pour obtenir les adresses qui leur sont liées avec l'outil de géocodage inverse. Une fois que vous avez beaucoup de bonnes adresses que vous les comparez avec celui que vous avez donné d'abord, vous prenez le géocodage plus précis ... De nombreuses demandes, beaucoup d'itération de plus en plus avec chaque mot que vous ajoutez à votre adresse, bien un travail laid, mais peut être amusant de faire des statistiques ^^

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