Ogr2ogr wfs kadaster bestuurlijke gebieden xml parsing failed

Hoi,

ik probeer met ogr2ogr van de WFS van kadaster bestuurlijke gebieden de gemeenten te importeren, maar ik krijg de foutmelding: ERROR 1: XML parsing of GML file failed : no element found at line 28, column 30852

ik werk met ogr2ogr op Windows via QGIS. Ik heb dit met meerdere versies geprobeerd (gdal 3.8.3, gdal 3.10.1 en gdal 3.12.1) en krijg telkens dezelfde foutmelding.

het command is als volgt:
ogr2ogr -f GPKG data/output/test.gpkg WFS:"https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?" Gemeentegebied -nln gemeente_kadaster -overwrite

gaat er iets mis in de command of bij de WFS server?

Overigens kan ik van dezelfde WFS ook niet de provincies en nederland importeren, telkens dezelfde soort foutmelding ERROR 1: XML parsing of GML file failed : no element found

dit werkt

ogr2ogr -f GPKG -overwrite test.gpkg WFS:“https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0” bestuurlijkegebieden:Gemeentegebied

Helaas, die aanpassing werkt bij mij niet.

ogrinfo WFS:“https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0”

werkt overigens prima, er gaat alleen iets mis bij het ophalen van de objecten vermoed ik.

Apart, wat geeft debug = ON?

ogr2ogr --debug ON -f GPKG test.gpkg WFS:“https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0” bestuurlijkegebieden:Gemeentegebied

GDAL: Proxy driver FileGDB *not* registered due to ogr_FileGDB.dll not being found
GDAL: Proxy driver HANA *not* registered due to ogr_HANA.dll not being found
GDAL: Proxy driver KEA *not* registered due to gdal_KEA.dll not being found
WFS: https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&REQUEST=GetCapabilities
HTTP: Fetch(https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&REQUEST=GetCapabilities)
HTTP: libcurl/8.17.0 OpenSSL/3.0.18 (Schannel) zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 WinIDN
WFS: Paging support with page size 100
WFS: No ImplementsStandardJoins support
WFS: No transaction support
GDAL: GDALOpen(WFS:https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?, this=0000025FEE9F1D00) succeeds as WFS.
GDAL: QuietDelete(data/output/test6.gpkg) invoking Delete()
GDAL: GDALDriver::Create(GPKG,data/output/test6.gpkg,0,0,0,Unknown,0000000000000000)
HTTP: Fetch(https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=DescribeFeatureType&TYPENAME=bestuurlijkegebieden:Gemeentegebied,bestuurlijkegebieden:Provinciegebied,bestuurlijkegebieden:Landgebied)
WFS: https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100
VSICURL: Start download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100
GML: Using Expat reader
GML: Global SRS = urn:ogc:def:crs:EPSG::28992
GML: Using /vsimem/.#!HIDDEN!#./1/_ogr_wfs_/file.xsd
GDAL: GDALOpen(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100, this=0000025FEF65CE40) succeeds as GML.
GML: ResetReading()
GML: ResetReading()
VSICURL: Read attempt beyond end of file
VSICURL: Read attempt beyond end of file
ERROR 1: XML parsing of GML file failed : no element found at line 28, column 30852
GDALVectorTranslate: 0 features written in layer 'gemeente_kadaster'
ERROR 1: Terminating translation prematurely after failed
translation of layer bestuurlijkegebieden:Gemeentegebied (use -skipfailures to skip errors)
GPKG: Creating insert/delete feature_count triggers
GDAL: GDALClose(data/output/test6.gpkg, this=0000025FEEF14AE0)
VSICURL: Stop download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100
GDAL: GDALClose(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100, this=0000025FEF65CE40)
GDAL: GDALClose(WFS:https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?, this=0000025FEE9F1D00)
GDAL: In GDALDestroy - unloading GDAL shared library.

lijkt me iets met het netwerk (proxy ofzo)

dit krijg ik (3.12.0):

WFS: https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?

SERVICE=WFS&REQUEST=GetCapabilities
HTTP: Fetch(https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&REQUEST=GetCapabilities)
HTTP: libcurl/8.17.0 OpenSSL/3.0.18 (Schannel) zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 WinIDN
WFS: Paging support with page size 100
WFS: No ImplementsStandardJoins support
WFS: No transaction support
GDAL: GDALOpen(WFS:https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0, this=0000025FD23914E0) succeeds as WFS.
GDAL: GDALDriver::Create(GPKG,test.gpkg,0,0,0,Unknown,0000000000000000)
HTTP: Fetch(https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=DescribeFeatureType&TYPENAME=bestuurlijkegebieden:Gemeentegebied,bestuurlijkegebieden:Provinciegebied,bestuurlijkegebieden:Landgebied)
WFS: https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100
VSICURL: Start download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100
GML: Using Expat reader
GML: Global SRS = urn:ogc:def:crs:EPSG::28992
GML: Using /vsimem/.#!HIDDEN!#./1/_ogr_wfs_/file.xsd
GDAL: GDALOpen(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100, this=0000025FD27DBF30) succeeds as GML.
GML: ResetReading()
GML: ResetReading()
VSICURL: Stop download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100
GDAL: GDALClose(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=0&COUNT=100, this=0000025FD27DBF30)
WFS: https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=100&COUNT=100
VSICURL: Start download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=100&COUNT=100
GML: Using Expat reader
GML: Global SRS = urn:ogc:def:crs:EPSG::28992
GML: Using /vsimem/.#!HIDDEN!#./1/_ogr_wfs_/file.xsd
GDAL: GDALOpen(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=100&COUNT=100, this=0000025FD27DC1A0) succeeds as GML.
GML: ResetReading()
GML: ResetReading()
VSICURL: Stop download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=100&COUNT=100
GDAL: GDALClose(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=100&COUNT=100, this=0000025FD27DC1A0)
WFS: https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=200&COUNT=100
VSICURL: Start download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=200&COUNT=100
GML: Using Expat reader
GML: Global SRS = urn:ogc:def:crs:EPSG::28992
GML: Using /vsimem/.#!HIDDEN!#./1/_ogr_wfs_/file.xsd
GDAL: GDALOpen(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=200&COUNT=100, this=0000025FD27DB570) succeeds as GML.
GML: ResetReading()
GML: ResetReading()
VSICURL: Stop download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=200&COUNT=100
GDAL: GDALClose(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=200&COUNT=100, this=0000025FD27DB570)
WFS: https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=300&COUNT=100
VSICURL: Start download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=300&COUNT=100
WFS: numberMatched = 342
GML: Using Expat reader
GML: Global SRS = urn:ogc:def:crs:EPSG::28992
GML: Using /vsimem/.#!HIDDEN!#./1/_ogr_wfs_/file.xsd
GDAL: GDALOpen(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=300&COUNT=100, this=0000025FD27DB300) succeeds as GML.
GML: ResetReading()
GML: ResetReading()
GDALVectorTranslate: 342 features written in layer 'bestuurlijkegebieden:Gemeentegebied'
GPKG: 342 rows inserted in rtree_bestuurlijkegebieden:Gemeentegebied_geom
GPKG: Creating insert/delete feature_count triggers
VSICURL: Stop download for https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=300&COUNT=100
GDAL: GDALClose(/vsicurl_streaming/https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=bestuurlijkegebieden:Gemeentegebied&STARTINDEX=300&COUNT=100, this=0000025FD27DB300)
GDAL: GDALClose(WFS:https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0, this=0000025FD23914E0)
GDAL: GDALClose(test.gpkg, this=0000025FD28DBC40)
GDAL: In GDALDestroy - unloading GDAL shared library.

Ook op een laptop op een hotspot krijg ik dezelfde foutmelding.

Zou het een instelling in de windows-beveiliging kunnen zijn?

Een ogr2ogr verzoek aan OGC API BGT werkt trouwens wel, daar kan ik wel dingen downloaden, dus het lijkt beperkt tot ogr2ogr WFS afhandeling.

Hier een met ogr2ogr versie 3.9.2 (op win11) uitgeprobeerd, gaat als een zonnetje.
Heb je misschien een GDAL omgevingsvariabele een vreemde kant uit staan?
(zie Configuration options — GDAL documentation)

Er lijkt wel iets aan de hand met variabelen of met afhankelijkheden.

Bovenstaande fouten ontstaan dus wanneer ik de terminal open vanuit mijn meest recente QGIS versie (3.40.14)
Browser panel, rechtsklik op een map met data en kies Open in Terminal.
Bij deze werkwijze heb ik meteen de beschikking over gdal commando’s.

Wanneer ik direct een terminal open in Windows (Opdrachtprompt) moet ik eerst een set path doen voordat ik gdal commando’s kan gebruiken.
De set path verwijst naar de bin directory van de meest recente GIS versie:
C:\Program Files\QGIS 3.40.14\bin

Wanneer ik op deze tweede manier de WFS data ophaal lukt het wel,
maar krijg ik allemaal andere foutmeldingen rondom proj. en heeft de data die uiteindelijk in de geopackage komt ook geen CRS meegekregen (kan dat te maken hebben met de proj errors?).

ERROR 1: PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\15\share\contrib\postgis-3.4\proj\proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 2 whereas a number >= 6 is expected. It comes from another PROJ installation.
ERROR 1: PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\15\share\contrib\postgis-3.4\proj\proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 2 whereas a number >= 6 is expected. It comes from another PROJ installation.
ERROR 1: PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\15\share\contrib\postgis-3.4\proj\proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 2 whereas a number >= 6 is expected. It comes from another PROJ installation.
ERROR 1: PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\15\share\contrib\postgis-3.4\proj\proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 2 whereas a number >= 6 is expected. It comes from another PROJ installation.
ERROR 1: PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\15\share\contrib\postgis-3.4\proj\proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 2 whereas a number >= 6 is expected. It comes from another PROJ installation.
ERROR 1: PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\15\share\contrib\postgis-3.4\proj\proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 2 whereas a number >= 6 is expected. It comes from another PROJ installation.
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/5482
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/5936
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/3978
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/2193
ERROR 1: PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\15\share\contrib\postgis-3.4\proj\proj.db contains DATABASE.LAYOUT.VERSION.MINOR = 2 whereas a number >= 6 is expected. It comes from another PROJ installation.

Deze meldingen krijg ik dus niet wanneer ik de terminal open vanuit QGIS.

Ik vraag me op basis van deze meldingen dan weer af waarom er verwezen wordt naar een proj.db bestand in mijn PostgreSQL installatie.

Wanneer ik in deze terminal, dus met gebruik van de set path, het commando projinfo gebruik, krijg ik een deprecation warning:

DeprecationWarning: PROJ_LIB environment variable is deprecated, and will be removed in a future release. You are encouraged to set PROJ_DATA instead.
Rel. 9.7.1, December 1st, 2025

en als ik projinfo doe in de terminal die ik via QGIS open krijg ik die warning niet:

Rel. 9.7.1, December 1st, 2025

Er lijkt dus wel iets aan de hand te zijn met afhankelijkheden… maar waar te beginnen?

Bij een losse gdal/ogr installatie zou je dit probleem waarschijnlijk niet hebben, maar je hergebruikt nu de GDAL/OGR die met QGis meekomt.
Daarvoor moet je de volgende environment variabelen zelf zetten:
PATH (die had je al gevonden)
GDAL_DATA, naar C:\Program Files\QGIS <versienr.>\apps\gdal\share\gdal
PROJ_LIB, naar C:\Program Files\QGIS <>versienr.\share\proj
Zo heb ik de boel werkend met een gewone command-prompt met de QGis-GDAL/OGR.

proj_lib is niet meer nodig

@bertt weet je toevallig sinds welke versie van GDAL (en: welke versie van de met QGis meegeleverde GDAL)?

@gisnederland QGIS 3.10 (GDAL 3 / PROJ 6) van 2019

@gisnederland wanneer ik de terminal vanuit de QGIS applicatie open heb ik dus juist geen Set Path nodig.

In de terminal kan ik met het commando set alle omgevingsvariabelen zien
Daar staat C:\Program Files\QGIS <versienr.>\bin al bij PATH.

Ook GDAL_DATA verwijst naar de juiste C:\Program Files\QGIS <versienr.>\apps\gdal\share\gdal
Ik zie hier trouwens ook de PROJ_LIB variabele instaan die naar PostGIS verwijst, waarschijnlijk is die afkomstig van mijn PostGIS installatie.

Maar vanuit die terminal kan ik dus de WFS data niet binnenhalen.

Wanneer ik een standaard windows prompt open en daar set type staat daar ook GDAL_DATA maar die verwijst naar GDAL_DATA=C:\Program Files\PostgreSQL\15\gdal-data

Met die standaard windows prompt, met de toegevoegde path naar de bin folder van QGIS kan ik dus wel de WFS data binnenhalen, maar dan zonder CRS en zonder goede geometrie-aanduiding.

QGis “erft” in beginsel alle omgevingsvariabelen van Windows (zowel de systeem- als de gebruikersomgevingsvariabelen).
Maar QGis kan er zelf ook omgevingsvariabelen aan toevoegen of bestaande variabelen wijzigen. Dat zie je in QGis terug onder Settings->Options->System en dan helemaal onderaan staan de “current environment variables”, met de door QGis aangepaste in vet.
Let er ook op dat aanpassingen die je zelf achter een Windows-command prompt doet met “set” alléén in de sessie in dat venster gelden. Om een variabele breder aan te passen gebruik je “setx”, de aangapaste waarde geldt dan in alle sessies/progamma’s die je daarna opent.

1 like

Dat “erft” vraag ik me dus af, aangezien ik bij path niet alle systeemvariabelen terug zie…

Maar goed, ondertussen heb ik een interessante ontdekking gedaan:
WFS services die niet van PDOK komen kan ik wel binnenhalen, bijvoorbeeld deze:

ogr2ogr -f gpkg data/output/test6.gpkg WFS:"https://map.data.amsterdam.nl/maps/gebieden" wijk -overwrite -nln amsterdam_wijk

of deze:

ogr2ogr -f gpkg data/output/test6.gpkg WFS:"https://www.warmteatlas.nl/geoserver/WarmteAtlas/wms?" ProeftuinAardgasvrijeWijken -overwrite -nln paw

Ik heb nu ook andere WFS servcies van PDOK geprobeerd, en die geven allemaal diezelfde XML parsing error (no element found en/of unclosed token found).

Kan iemand zien wat er anders is aan de PDOK WFS service dan de WFS services die wel lukken?

Een verschil:
Geen NewLine character na de laatste afsluitende token: </wfs:FeatureCollection>

Geen idee of dat verplicht is en/of GDAL daar problemen mee heeft, maar kan goed zijn dat een gemiddelde parser dat niet leuk vindt.

Update:

In de QGIS terminal wordt door QGIS diverse environment variabelen toegevoegd, die zijn ook te zien in Opties>Systeem.
Daar staat, in ieder geval bij mij, VSI_CHACHE=TRUE

Als ik die in de terminal leeg maak: VSI_CACHE=
of als ik dit in QGIS aanpas:


en dan de terminal open dan kan ik wel de PDOK WFS services omzetten naar een gpkg.

Ik had deze situatie vanmiddag op GDAL mailing list gezet en daar kwam zojuist deze workaround uit en het bleek dat dit een bug in GDAL en die is vanavond nog gerepareerd :+1:

Wat een community!

4 likes

Ha, kleine toevoeging, hebben jullie ook de stored queries geprobeerd, deze zouden in dit geval optimaler kunnen zijn

https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?request=ListStoredQueries&service=wfs&version=2.0.0

Vraag me ook af of je niet een outputformat application/json van de wfs uit kunt vragen en deze omzetten met ogr?

ogr2ogr -f GPKG test.gpkg \
  "WFS:https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?service=WFS&version=2.0.0&request=GetFeature&typeNames=Gemeentegebied&outputFormat=application/json" \
  -nln gemeente_kadaster \
  -overwrite

met json is ie in ieder geval een stuk sneller

met gebruik van storedquery zou ie er zo uit zien (maar geeft sql errors)

ogr2ogr -f GPKG test.gpkg \
  "WFS:https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?service=WFS&version=2.0.0&request=GetFeature&storedQueryId=urn:pdok:bestuurlijkegebieden:Gemeentegebied&outputFormat=application/json" \
  -nln gemeente_kadaster \
  -overwrite

oh, dit werkt wel in gml

ogr2ogr -f GPKG test3.gpkg   "WFS:https://service.pdok.nl/kadaster/bestuurlijkegebieden/wfs/v1_0?service=WFS&version=2.0.0&request=GetFeature&storedQueryId=urn:pdok:bestuurlijkegebieden:Gemeentegebied&typenames=brk-bestuurlijke-gebieden:Gemeentegebied" -overwrite
1 like

Ik heb nog nooit gehoord van stored queries.
Hoe zou ik een commando in de terminal moeten opbouwen om dit mbv GDAL binnen te halen en hoe maak ik daar dan weer een gpkg van?

Een tussenweg via een json lijkt me overigens onnodig ingewikkeld. Naar mijn idee is ogr2ogr juist bedoeld om standaarden naar elkaar om te zetten. Het zou toch raar zijn als ik WFS eerst naar json moet omzetten (met ogr2ogr?) en dan de json met ogr2ogr moet omzetten naar gpkg?
Als dat niet in e’;én keer kan, dan zit er denk ik iets fout in de bron (de WFS) of in de drivers in GDAL, toch?