Closed Harm-Olthof closed 5 years ago
Interessante observatie, maar ik begrijp niet zo goed wat ik ermee moet.
Moet ik dit zien als een feature request om de BGT-import plugin zo te configureren dat de BGT daarmee correct in postgis ingelezen kan worden?
wellicht ten onrechte, maar ik had uit de documentatie begrepen dat in *_V tabellen vlakken zitten. Ik tref echter in bijvoorbeeld bgt_kunstwerkdeel_v dus ook lijnen en vlakken aan. Dat zou duiden op een bug.
Ik begrijp dat je met "_V tabellen" de _V.gml bestanden bedoeld.
In dat geval is het goed om te weten dat deze bestanden zowel punten, lijnen als vlakken bevatten zoals hier uitgelegd: https://marcoduiker.github.io/QGIS_BGT_Import/help/build/html/introduction.html#second-tab-individual-files
Je observatie toont aan dat ogr2ogr bij het exporteren naar postgis de .gfs bestanden met import definities anders gebruikt dan qgis.
Ik ben bang dat ik mijn bevinding niet duidelijk verwoord heb en dat we op het verkeerde spoor terecht zijn gekomen. Vergeet de hele opmerking over Postgis en ook over GML's en .gfs bestanden en laten we opnieuw beginnen. We draaien de vraag gewoon om: (1) bij het starten van de plugin, tab "volledig paket" geef je een pad naar een geopackage bestand; (2) na afloop van de import open ik het geopackage bestand met de db manager (of in mijn geval met spatialite_gui); (3) voer de query uit die ik eerder gaf: je krijgt dan dus meerdere geometrieen in de geopackage tabel bgt_kunstwerkdeel_v (en vast andere tabellen).
Uit deze bevinding volgen 2 vragen: (1) is dit een bug? want ik verwacht alleen vlakken in _v tabellen in het gpkg bestand (2) Als het geen bug is, waarom dan de naamconventie _p ; *_v etc.
(Ik probeerde dus het gpkg bestand te converteren naar Postgres en niet de GML bestanden, wellicht had ik dat duidelijker moeten verwoorden. Excuses daarvoor).
Ah, daarmee wordt het duidelijk. En interessant.
De manipulatie van gfs bestanden die door de plugin wordt uitgevoerd zorgt ervoor dat ogr (en daarmee QGIS) bij inlezen een voorkeur heeft voor het juiste type geometrie (bijvoorbeeld vlakken bij *_V). Dit borgt dat de import plugin dan ALLE vlakken inleest, ook als ogr normaal gesproken een deel zou weglaten door de specifieke opbouw van een deel van de objecten.
Inderdaad heb ik nooit gecontroleerd wat er met de andere geeometrie types gebeurt. Blijkbaar worden die ook (gedeeltelijk) ingelezen. Doordat QGIS automatisch alleen vlakken in een vlakken laag importeert heb je hier in de praktijk geen last van.
Het is wel zonde van de ruimte, en inderdaad onhandig indien het geopackage wordt geconverteerd naar andere zaken.
Er is een nieuwe versie (3.10) waarin eea lijkt gefixed.
Deze kun je installeren vanuit deze zip: https://github.com/MarcoDuiker/QGIS_BGT_Import/archive/master.zip
Wellicht wil je even uitproberen of het inderdaad goed is zo (en of je andere rare dingen ziet).
Dank voor de snelle actie! Ik heb 2 keer een gebied geprobeerd, maar de import laat QGIS halverwege crashen. Hier volgt het crash-report (maar dat bevat weinig info): Crash ID: 8ecd47609595a8cbc82a1c53f72f7d6829f7b919 Stack Trace sqlite3_blob_bytes : sqlite3_blob_bytes : sqlite3_blob_bytes : sqlite3_blob_bytes : sqlite3_blob_bytes : sqlite3_blob_bytes : sqlite3_blob_bytes : SASetupDefaultHooks : DBFSetWriteEndOfFileChar : CPLStringList::empty : QgsVectorLayer::extent : QgsMapSettings::fullExtent : QgsMapCanvas::fullExtent : QgsMapOverviewCanvas::setLayers : QgsLayerTreeMapCanvasBridge::setCanvasLayers : QObject::event : QApplicationPrivate::notify_helper : QApplication::notify : QgsApplication::notify : QCoreApplication::notifyInternal2 : QCoreApplicationPrivate::sendPostedEvents : qt_plugin_query_metadata : QEventDispatcherWin32::processEvents : CallWindowProcW : DispatchMessageW : QEventDispatcherWin32::processEvents : qt_plugin_query_metadata : QEventLoop::exec : QCoreApplication::exec : main : BaseThreadInitThunk : RtlUserThreadStart :
QGIS Info QGIS Version: 3.6.1-Noosa QGIS code revision: 2468226bc9 Compiled against Qt: 5.11.2 Running against Qt: 5.11.2 Compiled against GDAL: 2.4.1 Running against GDAL: 2.4.1
System Info CPU Type: x86_64 Kernel Type: winnt Kernel Version: 10.0.17134
Is dat bij de download, of tijdens het inlezen?
Ik heb het nog een keer geprobeerd met een schoon QGIS3 profiel en nu lijkt alles goed te gaan. Dank voor de snelle reparatie!
Zojuist heb ik een nieuwe BGT Import plugin ingediend (versie 3.11), met bovenstaande wijzigingen.
Zodra deze is geaccepteerd kun je 'm gewoon uit de QGIS plugins repo installeren.
Bij export naar Postgis via ogr2ogr kwam ik er achter dat er meerdere geometrie typen in de tabellen zitten. Bijvoorbeeld: SELECT ST_GeometryType(geom) , count(*) as aantal FROM bgt_kunstwerkdeel_v group by ST_GeometryType(geom) levert: LINESTRING 479 MULTIPOINT 147 POLYGON 382 (gebied ongeveer gemeente Midden-Drenthe)