[Qgis-user] PyQGIS to add PostGIS raster layer?
Yann Voté
ygversil at lilo.org
Thu Apr 30 00:45:53 PDT 2020
Hi,
Something like this should do.
pg_layer = QgsVectorLayer(
"host=db.priv.example.org port=5432 authcfg=expauth srid=4326 "
"dbname=exampledb table='schema'.'table_name' (geometry) "
"type=MULTIPOLYGON sql=",
baseName='table_name',
providerLib='postgres',
)
QgsProject.instance().addMapLayer(pg_layer)
Of course, adapt with your values. In particular, authcfg is the 7-chars
identifier of the auth configuration that contains your login and
password (or cert) to authenticate to PostgreSQL.
See https://qgis.org/pyqgis/master/core/QgsVectorLayer.html
See also
https://qgis.org/pyqgis/master/core/QgsDataSourceUri.html#qgis.core.QgsDataSourceUri
for more options to build database connection strings.
Regards.
Yann
Le 30/04/2020 à 00:24, thayeray a écrit :
> Is it possible to add a PostGIS raster layer to a project using PyQGIS?
> The PyQGIS Developer Cookbook mentions adding rasters from files,
> geopackages and WCS services.
> If I try using a QgsDataSourceUri by feeding it a raster column instead of a
> geometry column, the PostGIS error that is generated shows that is not going
> to work because raster is not a geometry:
>
> WARNING Erroneous query: SELECT 0, array_agg(DISTINCT
> st_srid("rast")::text || ':' || UPPER(geometrytype("rast"))) FROM
> "public"."indicators__g_economic_rebal_r_62ft" returned 7 [ERROR: function
> geometrytype(raster) does not exist
>
> Any ideas of what I can do? Do I just have to give up on PostGIS rasters and
> just turn it into WCS on the server?
>
>
>
>
> --
> Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-User-f4125267.html
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
>
More information about the Qgis-user
mailing list