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 05 November 2024 15:03

faki_mochere
Juste Inscrit !
Date d'inscription: 5 Nov 2024
Messages: 1

QGIS: Activation Spatialite Plugin

Bonjour,

Je viens de créer un plug-in qgis afin de pouvoir requêter sur des geopackage.
J'utilise pour cela sqlite3 avec une activation de spatialite

Code:

def execute_query(self, chemin_geopackage, COUCHE_CANA, COUCHE_NOEUD, COUCHE_BRANCHEMENT):
        try:
            # Connexion au GeoPackage pour exécuter la requête SQL
            conn = sqlite3.connect(chemin_geopackage)
            
            # Activer SpatiaLite
            conn.enable_load_extension(True)  # Activer explicitement le chargement d'extensions

            
            # Charger l'extension SpatiaLite
            conn.execute("SELECT load_extension('C:/Program Files/QGIS 3.16/bin/mod_spatialite.dll')")  # Vérifiez que le chemin vers mod_spatialite est correct
            
            # Créer le curseur
            cursor = conn.cursor()

Le problème que je rencontre est que les fonctions sptatiale ne semble pas fonctionner.
Ma requête fonctionne car quand je l'exécute avec qgis je retrouve bien le résultat attendu.

Voici ma requête :

Code:

select 'Canalisation' as lineaire, 'ZAMONT' as type, ligne.id_classa as id_cana,
               noeud.id_classa as id_noeud, zamont as z_cana, cote_rad as z_noeud, ligne.geom
            from {COUCHE_CANA} as ligne
            join {COUCHE_NOEUD} as noeud on st_distance(st_startpoint(ligne.geom), noeud.geom)  0.05 or coalesce(zamont, 0) - coalesce(cote_rad, 0) < -0.05)
            and ligne.qualglocxy like 'Classe A (< 40 cm)'
            and (chute_surv not like 'surverse' and chute_surv not like 'complexe' or chute_surv is null)
            and (ligne.sourattrib not like '%zamont%' or ligne.sourattrib is null) 
            and (noeud.sourattrib not like '%cote_rad%' or noeud.sourattrib is null)

Avez-vous rencontré des problèmes identiques. Quelle pourrait-être les solutions ?

Merci d'avance.

Hors ligne

 

Pied de page des forums

Powered by FluxBB