Dit kwam uit het nieuwe SQL Script BGT-Lean in NLExtract. Dit script maakt een slanke/meer hapklare versie van de “Full” BGT zoals door NLExtract in PostGIS ingelezen uit de BGT (City)GML:
- alleen actueelbestaande records (geen historie)
- uitsplitsen naar 1 geometrie-kolom per tabel, bijv Wegdeel_vlak
- alleen relevante kolommen, geen metadata, status etc.
- belangrijkste: converteer geo-kolommen naar “(OGC) Simple Geometries”, geen Curves etc
De vraag is meer algemeen en heeft betrekking op laatste. Aanvankelijk neemt BGT Lean alleen valide geometrie mee. Dus waar PostGIS ST_IsValid(vlak) is True
. Alleen dan gaan er records ontbreken, bijv plm 900 op 7.7 miljoen Wegdelen met vlak). De validatie melding is: Self-intersection at or near point …. PostGIS versie: postgis/postgis:10-3.2-alpine
(dus 3.2 met PG v10 in Docker).
Als voorbeeld een Fietspad vlak in Amersfoort met lokaalid = 'G0307.f86336b663854a3b9d00dd4d89a49b56'
.
De geometrie is een m.i. een simpel Polygoon maar is beschreven als CURVEPOLYGON
met embedded COMPOUNDCURVE
, waarin weer CIRCULARSTRING
s. QGIS accepteert deze overigens, zie deze CSV met WKT. Het NLExtract GitHub issue staat hier.
Maar mijn vraag is algemeen, daarom hier gesteld, want kan het zijn dat de BGT Curve-geometrie op zich valide is, maar dat door bijv ‘tolerantie’ in GEOS (de lib in PostGIS die valideert) er toch ‘invalid’ wordt gegeven? Ik heb meen ik zoiets weleens gezien in BRK waarin data uit Oracle Spatial vervolgens PostGIS ‘te weinig cijfers achter de comma had’ (1000-en van mm).