jeudi 8 mai 2008

Google, webservices et cartographie

Google webservices et cartographie

L'api la plus connue de google maps est la librairie javascript qui permet de faire du mashup avec leurs cartes. Il existe toutefois d'autres possibilitées pour exploiter leurs données. On peut facilement géolocaliser une adresse postale et la convertir en coordonnées géographiques.

Une simple requete http GET suffit :

http://maps.google.com/maps/geo?q=2+rue+victor+hugo+26000+valence+fr&output=csv&key=placer ici votre clé google maps api

Le format de retour est un fichier csv d'une ligne et de 4 colonnes
La colonne 1 correspond à un code retour d'erreur ou de succès













Code statut de la requèteDescription
(200) G_GEO_SUCCESSAucune erreur ne s'est produite. L'adresse a été analysée avec succès et ses coordonnées GPS (Latitude, Longitude) ont été retournées.
(400) G_GEO_BAD_REQUESTLa demande n'a pu être analysée avec succès.
(500) G_GEO_SERVER_ERRORLa demande n'a pu être traitée avec succès. La raison exacte de l'échec est inconnue.
(601) G_GEO_MISSING_QUERYLe paramètre "q" de la requète HTTP est manquant ou n'a aucune valeur. Pour les demandes de "géocodage", cela signifie qu'une adresse vide a été indiquée dans la requète. Pour les demandes de directions, cela signifie qu'aucune question n'a été indiquée dans la requète.
(601) G_GEO_MISSING_ADDRESSSynonyme de G_GEO_MISSING_QUERY.
(602) G_GEO_UNKNOWN_ADDRESSAucun lieu géographique correspondant à l'adresse indiquée n'a pu être trouvé. Cela peut être dû au fait que l'adresse est relativement nouvelle, ou qu'elle est peut être incorrecte.
(603) G_GEO_UNAVAILABLE_ADDRESSLes coordonnées GPS (Latitude, Longitude) pour l'adresse donnée ou l'itinéraire demandé n'ont pu être retournées pour des raisons légales ou contractuelles.
(604) G_GEO_UNKNOWN_DIRECTIONSGDirections n'a pas pu calculer d'itinéraire entre les points mentionnés dans la requète. Soit parce qu'il n'y a aucun itinéraire disponible entre les deux points, soit parce que nous ne disposons pas des données couvrant cette région.
(610) G_GEO_BAD_KEYLa clef indiquée est invalide ou n'est pas attribuée au domaine pour lequel elle a été donnée.
(620) G_GEO_TOO_MANY_QUERIESLe nombre de requètes, pour la clef donnée, a dépassé le quota des demandes autorisées pour une période de 24 heure.


La deuxième est un code de précision (de 1 à 8)
Si vous faite une demande sur une ville, sans nom de rue vous aurez une valeur plus faible que si vous demander aussi une rue












CodeDescription
0Localisation impossible.
1Niveau d'exactitude : Pays.
2Niveau d'exactitude : Région (état, province, préfecture, etc.).
3Niveau d'exactitude : Région secondaire(comté, municipalité, etc.).
4Niveau d'exactitude : Ville (ville, village).
5Niveau d'exactitude : Code (code postal).
6Niveau d'exactitude : Rue.
7Niveau d'exactitude : Intersection.
8Niveau d'exactitude : Adresse.


La troisième est la latitude
La dernière est la longitude

Une variante permet de récupérer une fichier xml. Il suffit de changer csv par xml dans la requete. On a alors quelques informations complémentaires
comme la région et le département.