banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

gvellut
Participant actif
Lieu: Annecy
Date d'inscription: 13 Apr 2006
Messages: 112
Site web

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

gvellut
Participant actif
Lieu: Annecy
Date d'inscription: 13 Apr 2006
Messages: 112
Site web

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

gvellut a écrit:

- 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

 

Pied de page des forums

Powered by FluxBB