Circular arcs for QGIS & co





Marco Bernasocchi

Founder OPENGIS.ch · Creator QField.org · Chair QGIS.org · VP OSGEO.org

Arcs?

Arcs?

  • maths instead of many little segments
  • segmentation leads to diverse datasets

10 y ago

QGIS HF and QGIS.ch already a subject

did not start from scratch

  • PG, GeoPackage, GDAL can store/understan arcs
  • QGIS can edit arcs

BUT no geometric operations!

so where do we fix this

  • we did a plugin years ago

how does OSS work

  • specialised libraries that do one thing well and are reusable
  • dont do all in a plugin/extention/integration
  • good contributors try to bring/fund things upstream

Solution?

Fix it in GEOS

what did we do 2024

  • Crowfunding 25K
  • pilot project -> make geos understand arcs
  • geos community showed acceptance for the subject, project was merged

what did we do 2025-2026

  • crowdfunding 125K
  • Implementation in GEOS

First of all thanks!

  • Bundesamt für Landestopografie swisstopo
  • Verein AV-QGIS
  • Kanton Schaffhausen
  • Grundbuch- und Vermessungsamt Basel-Stadt
  • Stierli + Ruggli Ingenieure + Raumplaner AG
  • Kantonale Verwaltung Appenzell Innerrhoden
  • Amt für Grundbuch und Geoinformation des Kantons Zug
  • Ville de Morges
  • Amt für Informatik des Kantons Thurgau
  • Kantonale Verwaltung Appenzell Innerrhoden
  • Kanton Basel-Landschaft
  • Amt für Geoinformation des Kantons Bern
  • QGIS Anwendergruppe Schweiz
  • Kanton Glarus - Bau und Umwelt
  • Metron Raumentwicklung AG
  • Trigonet AG
  • QGIS Deutschland
  • Kanton ZUG

where are we at 2024-2025

2024

  • Add representation for curved geometry types to GEOS
  • input/output using WKT and WKB

2025

  • Low-level algorithms for curves: get intersection point(s) and arc(s) of two curves.
  • Compute all intersection points between two geometries

where are we at 2026

  • Added functions to convert between curved geometries and linear approximations
  • accept curved inputs for all GEOS C API functions
  • incrementally add true curve support without clients needing to change their code.
  • Functionality is similar to QGIS, with the addition of a “maximum arc angle” in line-to-curve conversion
  • Work-in-progress PR: https://github.com/libgeos/geos/pull/1382
  • Adding true curve support for some C API functions where linearization really makes no sense: GEOSBoundary, GEOSNormalize, perhaps GEOSDensify.

what is next

2026 April - ?

  • Adding true curve support to Overlay engine. (GEOSIntersection, GEOSDifference, etc.)
  • Expected done by end of 2026, assuming current rate of funding.

Challenges

  • tollerance in java ili2db hardcoded based on the LV95 and educated guessing, not possible for geos since it works on all CRS precisions
  • mantain arcs that belong to the same circle over multiple calculation steps -> see arcs defined by 3 points vs arcs with center + radius
  • Robustness issues: Open source GIS libraries have 25 years of experience and accumulated test cases for robustness of operations on linear geometries. This is lacking for curved types. It’s expected that issues will come up once the curve algorithms encounter geometries from the wild.

Roadmap

  • Pilot project integrated in geos 3.13 (Sepember 2024)
  • Q3 2026 finished implementation in GEOS
  • Q4 Stabilisation
  • Target QGIS ~4.6

And why this?

  • in CH we have AV that requires arcs
  • datasets building on it z.b Nutzungsplanung
  • difficult to work properly with OS GIS
  • AV-QGIS is coming
  • QGIS to become THE tool for this use cases

Want to know more?

QGIS User conference and contributor meeting 2026

Thank you 🙏 Questions?




slides.opengis.ch/talk-interlis/arcs


@mbernasocchi · OPENGIS.ch · QField.org · berna.io