QGIS Integration
QGIS is an open source geospatial platform. It can be integrated with Teiid to serve geospatial data from a variety of sources.
Prerequisites
-
Have QGIS installed. Teiid integration was last tested with version 2.14.
-
Your Teiid installation should already be setup for ODBC access. This allows the built-in support of QGIS for PostGIS/PostgreSQL to be used.
-
Have a VDB deployed that exposes one or more tables containing an appropriate Geometry column.
-
The Teiid system table GEOMETY_COLUMNS will be used by QGIS. Please ensure that the relevant geometry columns have the appropriate srid and coord_dimensions, which may require setting the {http://www.teiid.org/translator/spatial/2015}srid and {http://www.teiid.org/translator/spatial/2015}coord_dimension extension property on the geometry column.
-
QGIS Configuration
This process will need to be repeated for each VDB schema you are exposing that contains geospatial data.
-
In the QGIS GUI browser panel right click on PostGIS and select "New Connection".
-
Fill in the Teiid server host, ODBC port, database (VDB Name with optional version), user, and password.
-
If your VDBs contain target schema or table names with % or _, Teiid must be configured to use the same default like escape character '\' as PostgreSQL to properly respond to metadata queries. Either the system property org.teiid.backslashDefaultMatchEscape must be set to true.
-
-
Follow the typical QGIS instructions for creating a Layer by browsing to the appropriate schema and selecting a table that exposes a geometry.
Additional Considerations
-
If you are integrating a PostgreSQL source, you must not re-expose the postgres system tables including the PostGIS geometry_columns or geography_columns tables. This is because QGIS makes unqualified references to these tables, which may then be ambiguous.
-
Operations involving creating or deleting schemas or tables will not work.
-
The logs may contain messages related to information_schema.tables - this is to determine if the qgis_editor_widget_styles table exists. That is currently not supported.