Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Sat 02 August 2014 14:07

snaileater
Participant actif
Date d'inscription: 5 Nov 2008
Messages: 121

QGIS Python : Requêtes spatiales sans Postgis ni Spatialite ...

Bonjour,
pour effectuer des requêtes géographiques sous Python (dans Qgis) j'imagine qu'on peut (aussi) se passer de Postgis ou Spatialite ?
Est-il possible d'accéder aux classes existantes utilisées par l'outil intégré "requête spatiale" ?
Est-ce possible ? Comment peut-on procéder ?
Merci pour votre aide ...

Hors ligne

 

#2 Mon 04 August 2014 04:12

Leyan
Participant assidu
Date d'inscription: 14 Oct 2013
Messages: 160

Re: QGIS Python : Requêtes spatiales sans Postgis ni Spatialite ...

Que veux-tu faire exactement ?

QgsGeometry contient la plupart des fonctions dont tu as besoin (disjoint, contains, within, overlaps, etc.) mais ne travaille que sur les éléments individuels.

Si tu veux travailler sur deux couches, tu peux regarder comment fait le plugin (plugins/spatialquery/). La méthode naïve est d'avoir deux boucles pour parcourir tous les éléments. On peut faire mieux avec un index spatial (ce que fait le plugin), mais je pense que ce sera difficile d'être aussi optimisé que PostgreSQL ...

Hors ligne

 

#3 Mon 04 August 2014 07:22

snaileater
Participant actif
Date d'inscription: 5 Nov 2008
Messages: 121

Re: QGIS Python : Requêtes spatiales sans Postgis ni Spatialite ...

Ah euh ... je ne savais pas qu'il y avait déjà "de base" des fonctions de ce type dans la classe QgsGeometry ...
Je vais commencer par regarder cela (et l'index spatial)
Y a-t-il moyen de répliquer un RatioOverlap(obj1,obj2) tel qu'existant dans Mapinfo ?
Merci bien.

Hors ligne

 

#4 Mon 04 August 2014 11:53

Leyan
Participant assidu
Date d'inscription: 14 Oct 2013
Messages: 160

Re: QGIS Python : Requêtes spatiales sans Postgis ni Spatialite ...

Je ne connais pas MapInfo, que fait cette fonction exactement ? Si c'est calculer l'aire de l'overlap par rapport à l'aire d'origine, cela semble facile, il suffit de calculer l'intersection des deux géométries puis faire un ratio d'aire, non ?

overlap = geo1.intersection(geo2)
return overlap.area()/geo1.area()

Hors ligne

 

#5 Mon 04 August 2014 15:02

snaileater
Participant actif
Date d'inscription: 5 Nov 2008
Messages: 121

Re: QGIS Python : Requêtes spatiales sans Postgis ni Spatialite ...

oui oui c'est exactement cela ...

Hors ligne

 

Pied de page des forums

Powered by FluxBB