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

GEODATA DAYS 2024

#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