Pages: 1
- Sujet précédent - QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail - Sujet suivant
#1 Tue 07 May 2019 18:04
- Groflo
- Participant actif
- Date d'inscription: 3 Jun 2013
- Messages: 84
QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail
Bonjour à tous,
Cherchant à intégrer des isochrones du géoportail sur des projets QGIS, j'utilisais il y a quelques temps le plugin isochrones du ministère du développement durable, mais impossible de retrouver le plugin dans l'explorateur de plugin. Peut-être n'est-il pas dispo pour QGIS 3 ?
Mais au-delà de ce problème (si quelqu'un a la solution, je suis tout de même preneur), vu que je n'en ai pas 50 à produire, je pensais bêtement utiliser directement des URL de l'API pour récupérer les vecteurs associés. Sauf que je me rends compte que je ne sais pas du tout comment faire. J'imagine qu'un petit prog python ferait le job, mais comme je n'ai pas remis les mains dans python depuis un moment, ça va me prendre un temps fou pour pas grand chose.
J'avais pensé qu'en ajoutant un vecteur à partir d'un protocole, et en sélectionnant geoJSON, ça fonctionnerait, mais visiblement ce n'est pas le cas.
Par exemple, l'URL : http://wxs.ign.fr/choisirgeoportail/iso … thing=true fonctionne dans mon navigateur (j'ai mis le lien avec la clé d'essai de géoportail pour que tout le monde puisse tester et voir sans avoir à mettre sa clé), mais lorsque je veux l'utiliser pour ouvrir un vecteur en protocole geoJSON, ça me donne une erreur
Source de données non valide: http://wxs.ign.fr/choisirgeoportail/iso … thing=true n'est pas une source de données valide ou reconnue.
Quelqu'un pourrait m'aiguiller sur la marche à suivre ? Merci par avance.
Dernière modification par Groflo (Wed 08 May 2019 08:21)
Hors ligne
#2 Tue 07 May 2019 21:41
Re: QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail
L'URL renvoie :
Code:
<isochroneResult> <status>OK</status> <location>3.507070697879768,45.911068551277616</location> <srs>EPSG:4326</srs> <time>300</time> <wktGeometry> POLYGON ((3.504869 45.910195, 3.50479 45.910308, 3.504555 45.91104, 3.504555 45.911322, 3.504633 45.911322, 3.504869 45.910646, 3.504947 45.910364, 3.504947 45.910308, 3.504947 45.910252, 3.504947 45.910195, 3.504947 45.910139, 3.504947 45.910083, 3.504869 45.910083, 3.504869 45.910195)) </wktGeometry> </isochroneResult>
Donc pas du GeoJSON. L'élément isochroneResult/wktGeometry est du WKT. C'est probable que tu devras écrire du code Python pour l'extraire et en faire une couche.
Hors ligne
#3 Wed 08 May 2019 08:23
- Groflo
- Participant actif
- Date d'inscription: 3 Jun 2013
- Messages: 84
Re: QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail
Ah désolé, j'avais oublié de modifier le lien pour qu'il passe en JSON, donc à présent, c'est le cas, ça renvoie du format JSON.
Cela dit, est-ce du geoJSON ? Je ne connais que très peu ce format, donc difficile à dire, ça donne le même résultat que celui que tu cites, mais en JSON :
Code:
{"message":null, "status":"OK", "id":null, "location":"3.507070697879768,45.911068551277616", "srs":"EPSG:4326", "time":"300", "distance":null, "wktGeometry":"POLYGON ((3.504869 45.910195, 3.50479 45.910308, 3.504555 45.91104, 3.504555 45.911322, 3.504633 45.911322, 3.504869 45.910646, 3.504947 45.910364, 3.504947 45.910308, 3.504947 45.910252, 3.504947 45.910195, 3.504947 45.910139, 3.504947 45.910083, 3.504869 45.910083, 3.504869 45.910195))"}
Donc non exploitable directement par QGIS en import, c'est ça ?
Hors ligne
#4 Wed 08 May 2019 15:08
Re: QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail
Effectivement, c'est du JSON mais pas du GeoJSON donc pas exploitable tel quel par QGIS.
Donc tu peux par exemple :
- écrire du Python pour extraire la géométrie et l'intégrer directement dans QGIS. Je ne pense pas que ce soit trop dur vu que QGIS supporte bien la conversion du WKT en géométrie QGIS dans l'API
- utiliser des outils en ligne de commande pour convertir dans un format lisible par QGIS (par exemple CSV : QGIS peut lire les géométries encodées en WKT). Tu peux utiliser des outils en lignes de commandes, style sed, jq, json2csv, csvkit...
- copier-coller à la main le WKT avec le plugin QuickWKT
Hors ligne
#5 Wed 08 May 2019 15:49
- Groflo
- Participant actif
- Date d'inscription: 3 Jun 2013
- Messages: 84
Re: QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail
- copier-coller à la main le WKT avec le plugin QuickWKT
Ah ça me semble le bon compromis ! Je ne connaissais pas ce plugin, j'irai voir comment il fonctionne et j'utiliserai certainement ça. Et s'il se trouvait que j'en avais vraiment beaucoup à faire un jour, ça vaudra sans doute le coup de prévoir un petit script python.
C'est juste dommage de ne pas arriver à remettre la main sur le plugin dédié isochrones du ministère, c'était tellement plus simple…
Merci en tout cas pour ces réponses rapides et utiles !
Hors ligne
#6 Thu 09 May 2019 17:19
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail
Bonjour,
l'auteur n'a pas prévu de porter son plugin sous la version 3 de qgis.
Je pense porter sous forme d'un algorithme de traitement ce plugin.
En attentant vous pouvez regarder le plugin ors tools (qui utilise le servie openrouteservices gratuit mais demande une inscription)
Cordialement,
Hors ligne
#7 Thu 09 May 2019 17:21
- Groflo
- Participant actif
- Date d'inscription: 3 Jun 2013
- Messages: 84
Re: QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail
Merci pour ces compléments d'information !
J'ai effectivement par ailleurs déjà utilisé ORS, ça fonctionne très bien, mais par souci d'homogénéisation, je cherche régulièrement à utiliser les mêmes sources, dont géoportail. Il faudrait d'ailleurs que je vérifie si ça diffère beaucoup entre les deux.
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.6: Récupérer vecteur d'une URL d'API REST géoportail - Sujet suivant