QGIS DB Manager herkent door St_CurveToLine gegenereerde geometry niet

Als ik m.b.v. St_CurveToLine een geometry-kolom (op basis van een MultiSurface) toevoeg aan een tabel, dan herkent de DB Manager van QGIS de nieuwe kolom (“geomhuib”) niet als geometrie. Hoe kan ik dit aanpakken, zodat de nieuwe kolom meteen als geometrie herkend wordt?

De sql waarmee ik in QGIS de tabel heb aangemaakt:
create table qgis_ontw.lijnzm as
select *, st_curvetoline(shape) as geomhuib
from qgis_ontw.geonvc_wioldglin;

Overigens: de Data Source Manager in QGIS herkent de geometrie wél en leest zowel de tabel, de WMS als de WFS correct in …

Beste Huib,

Zo te zien ontstaat er een ongedefinieerde geometriekolom.
Ofwel: het is wel een geometrie, maar onbekend of het punten, lijnen, of vlakken zijn. En er is ook geen coördinaatstelsel gedefinieerd.
En daar hebben PostGIS en QGIS moeite mee.
Om het netjes te doen, kun je in de query de geometrie meteen een geometrietype en coördinaatstelsel meegeven. Dat gaatzo:

create table qgis_ontw.lijnzm as
select *, st_curvetoline(shape)::geometry(Linestring, 28992) as geomwillem
from qgis_ontw.geonvc_wioldglin;

Het kán zijn dat je multi-geometrieën hebt: in dat geval moet je er een MultiLinestring i.p.v. Linestring van maken.
Hopelijk werkt dit.

Groeten uit Amsterdam,
waar ik toevallig nét een PostGIS cursus aan het geven ben

Willem

1 like

4 likes

Dank Willem, de extra parameters (b)lijken te werken.