QGIS3.4x的二次开发(三)打开POSTGIS图层

    QString service = QStringLiteral("");
    QString host = QStringLiteral("localhost");
    QString port = QStringLiteral("5432");
    QString database = QStringLiteral("postgis_25_sample");

    bool useEstimatedMetadata = false;
    QgsDataSourceUri::SslMode sslmode = QgsDataSourceUri::SslMode::SslDisable;

    QString username = QStringLiteral("postgres");
    QString password = QStringLiteral("geostar");
    QString authcfg = QStringLiteral("");

    QgsDataSourceUri uri;
    uri.setConnection(host, port, database, username, password, sslmode, authcfg);

    QString schema = QStringLiteral("china");
    QString tablename = QStringLiteral("bou2_4p");
    QString geometrycol = QStringLiteral("geom");

    uri.setDataSource(schema, tablename, geometrycol);

    QgsVectorLayer::LayerOptions options;
    options.loadDefaultStyle = false;

    QgsVectorLayer *vectorLayer = new QgsVectorLayer(uri.uri(false), uri.table(), "postgres", options);
    QgsProject::instance()->addMapLayer(vectorLayer);
    m_layers.append(vectorLayer);

    m_mapCanvas->setLayers(m_layers);
    m_mapCanvas->setVisible(true);
    m_mapCanvas->zoomToFullExtent();
    m_mapCanvas->freeze(false);

猜你喜欢

转载自www.cnblogs.com/paladin1893/p/10569186.html
今日推荐