#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


