-
Géocodage requête http
Bonjour,
J'essaye depuis la semaine dernière d'utiliser le service de géocodage de l'IGN/Géoportail en suivant la doc (https://geoservices.ign.fr/documenta...geocodage.html), mais sans succès.
Je pense que je dois me planter dans la construction de la requête mais je tourne en rond et ai toujours la même réponse:
Code:
{"http":{"status":403,"error":"<ExceptionReport><Exception exceptionCode=\"MissingRights\">No rights for this ressource or ressource does not exist</Exception></ExceptionReport>"}, "xml":null}
J'ai bien récupéré une clé pour le géoservice en question ce qui fait que mes tests de requêtes ressemblent toutes plus ou moins à ça:
Code:
https://wxs.ign.fr/MA_CLE/geoportail/ols?xls=methodName=GeocodeRequest&countryCode=PositionOfInterest&rue+des+erables%2C22400&output=json
Je me suis très bien débrouillé en testant l'équivalent BAN, mais l'IGN me donne du fil à retordre. J'ai vraiment du mal à trouver la syntaxe à utiliser (si tant est que ce soit le problème ?) et je ne comprend pas comment les exemples en XML de la doc sont sensés m'aider, alors un petit coup de main pour comprendre comment ça marche serait le bienvenu, merci :)
-
Bonjour,
Il me semble que vos requêtes ne sont pas complètes.
La documentation est à ce chapitre : https://geoservices.ign.fr/documenta...%AAtes-get-kvp
Votre exemple devient en Freeform pour de la recherche par adresses (car il me semble que c'est une adresse que vous cherchez) :
Code:
http://wxs.ign.fr/CLEF/geoportail/ols?xls=%3c%3fxml+version%3d%221.0%22+encoding%3d%22UTF-8%22%3f%3e%0d%0a%3cXLS%0d%0a++xmlns%3agml%3d%22http%3a%2f%2fwww.opengis.net%2fgml%22%0d%0a++xmlns%3d%22http%3a%2f%2fwww.opengis.net%2fxls%22%0d%0a++xmlns%3axsi%3d%22http%3a%2f%2fwww.w3.org%2f2001%2fXMLSchema-instance%22+version%3d%221.2%22%0d%0a++xsi%3aschemaLocation%3d%22http%3a%2f%2fwww.opengis.net%2fxls+http%3a%2f%2fschemas.opengis.net%2fols%2f1.2%2folsAll.xsd%22%3e%0d%0a++%3cRequestHeader+srsName%3d%22epsg%3a4326%22%2f%3e%0d%0a++%3cRequest+maximumResponses%3d%2225%22+methodName%3d%22GeocodeRequest%22+requestID%3d%22uid42%22+version%3d%221.2%22%3e%0d%0a++%3cGeocodeRequest+returnFreeForm%3d%22false%22%3e%0d%0a++++%3cAddress+countryCode%3d%22StreetAddress%22%3e%0d%0a++++++%3cfreeFormAddress%3erue+des+%c3%a9rables+22400%3c%2ffreeFormAddress%3e%0d%0a++++%3c%2fAddress%3e%0d%0a++%3c%2fGeocodeRequest%3e%0d%0a++%3c%2fRequest%3e%0d%0a%3c%2fXLS%3e
-
Aaah génial !
J'ai enfin compris, c'est TOUTE la requête XML qu'il faut encoder. Bah merci pour la réponse j'avais lu la doc plusieurs fois mais c'est tellement improbable que j'y avais pas pensé, 950 caractères pour demander une adresse c'est bien pensé y'a rien à dire.
Je sais pas si y'a des gens d'accord avec moi ou pas, mais c'est quand même particulièrement ingérable comme système. Je veux dire comparez avec le système de la BAN (https://adresse.data.gouv.fr/api/). Pour le contexte j'essaye d'automatiser du géocodage à partir de .csv en faisant une requête à partir d'une URL, en requêtant la BAN ça se fait bien mais là je suis pas rendu.
Enfin bref merci :)
-
Oui enfin là, ce que vous souhaitiez c'est de directement le faire en mettant une URL dans la barre d'adresse du navigateur.
Ce qui serait intéressant car c'est quelque peu l'esprit d'un forum, c'est d'indiquer la raison de faire cela.
Car il y a quand même pas de solutions possibles pour faire du géocodage :
- Après l'opération de requête par la méthode POST est quand même bien plus simple, il vous suffit dans votre code de former une requête XML tel que dans les exemples et de l'envoyer.
- pour la méthode GET précédemment fourni, vous pouvez vous simplifier la vie en utilisant la fonction JavaScript encodeURI()
- des applications pour vous simplifier encore plus la vie : http://professionnels.ign.fr/geocodeurs
- Ou encore des bibliothèques d'accès : https://geoservices.ign.fr/documenta...es-cadastrales
-
La raison de faire cela c'est que je récupère des fichiers excel etc. remplis d'infos, dont des adresses, mais très mal organisés.
Comme j'en ai beaucoup et qu'ils se ressemblent tous j'ai cherché un moyen d'automatiser un peu la correction pour géocoder tout ça ensuite. Et je suis tombé sur OpenRefine qui permet en plus de créer de nouveaux champs à partir de requêtes URL.
Voilà la raison pour laquelle je suis "obligé" de passer par ce système, ça me permet de corriger et géocoder mes adresses en une seule fois. Après je sais pas encore si c'est une super solution, je teste aussi un peu ça pour m'amuser.