-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
Feature description
Hi,
I am a developer and maintainer of NoiseModelling, an open-source tool for noise mapping that relies on H2GIS (a spatial extension of the H2 Database Engine) -> https://h2gis.org/
Currently, there is no direct way to open H2GIS databases in GDAL/QGIS without exporting data. I have developed a working prototype of a native GDAL/OGR driver for H2GIS, and I would like to submit it for review and potential integration.
I developed this driver with (very) significant assistance from AI tools to bridge the gap between my Java knowledge and the specificities of the GDAL C++ API. While the driver is functional and passes my local tests (loading layers in QGIS, running queries), I am aware that the C++ code quality, memory management, and adherence to GDAL style guidelines might need significant improvement ! I'm sorry, but since this plugin is very useful in my work, I decided to go ahead with it.
Code Repository
You can find the source code here:
[https://github.com/pierromond/H2GIS_gdalplugin](https://github.com/pierromond/H2GIS_gdalplugin)
What works:
Reading/Writing Vector layers.
Spatial filtering.
I am looking for:
Feedback on whether this "GraalVM bridge" architecture is acceptable for the GDAL ecosystem.
Help or guidance to clean up the C++ implementation to meet project standards.
Eventually, integration into the codebase if deemed valuable.
Thank you for your time and for this amazing library :)
Looking forward to your feedback!
Additional context
The Implementation Approach
Since H2GIS is pure Java and GDAL is C++, I used the new GraalVM Native Image to compile the H2GIS library into a shared library -> https://github.com/orbisgis/h2gis . The GDAL driver (C++) acts as a wrapper that talks to this native library via C-API entry points.
This architecture allows
Direct read/write access to H2GIS .mv.db files.
No JVM startup lag (thanks to native compilation).