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 29 March 2014 15:43

Mathieu LIEVRE
Participant occasionnel
Date d'inscription: 7 Dec 2012
Messages: 28

QGIS 2.x : Connexion à PostGIS pour un plugin

Bonjour,

Étudiants en Licence Pro SIG, nous travaillons actuellement sur le développement en Python d'un plugin permettant la consultation et la gestion de données forestières.

Nous avons beaucoup de mal à trouver de la documentation là-dessus et le temps nous est compté.

Voilà le problème : nous essayons de nous connecter à une base PostGreSQL/PostGIS afin d'afficher des données dans une fenêtre dockée dans QGIS.

Seulement voilà, cela ne fonctionne que pour les tables ayant une géométrie, et pas pour les tables purement alpha-numériques.


Voici le morceau code qui pose problème :

Code:

from appli_test_1_table2_form import *
class appli_test_1_table2_dialog(QDockWidget, Ui_appli_test_1_table2_form):
    def __init__(self, iface):
        QDockWidget.__init__(self)
        self.iface = iface
        self.setupUi(self)
        self.setMinimumHeight(410)
        self.setMinimumWidth(400)
        self.iface.addDockWidget(Qt.LeftDockWidgetArea, self)
        
        # common appli_test_1 methods
        self.qc = appli_test_1_common(self)
        
        uri = QgsDataSourceURI()
        uri.setConnection("localhost", "5432", "testforet", "postgres", "postgre")
        schema = "public"
        table = "foret"
        geom_column = "sub_geometrie"
        uri.setDataSource(schema, table, geom_column)
        display_name = "foret"
        self.layerForet = QgsVectorLayer(uri.uri(), display_name, "postgres")
        
        if not self.layerForet:
            QMessageBox.critical(self.iface.mainWindow(),"Erreur", u"La table Personne n'est pas présente" )
        else:
            print self.layerForet.featureCount()
            features = self.layerForet.getFeatures()
            for feature in features:
                print feature.attributes()

Pouvez-vous nous aider ou nous aiguiller là-dessus ?

Merci beaucoup.


La Team'Forêt (LUPSIG)

Dernière modification par Mathieu LIEVRE (Sat 29 March 2014 15:44)

Hors ligne

 

Pied de page des forums

Powered by FluxBB