Skip to content

Commit ef3f1a5

Browse files
author
opengisch
committed

File tree

13 files changed

+134
-49
lines changed

13 files changed

+134
-49
lines changed

talk-interlis/arcs.html

Lines changed: 127 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@
7373

7474
<section >
7575

76-
<h1>Kreisbogen in QGIS &amp; Co</h1>
76+
<h1>Circular arcs for QGIS &amp; co</h1>
7777
<br />
7878
<br />
7979
<br />
8080
<br />
81-
<p>Marco Bernasocchi</p>
81+
<h3>Marco Bernasocchi</h3>
8282
<p>Founder <a href="https://opengis.ch">OPENGIS.ch</a> · Creator <a href="https://qfield.org">QField.org</a> · Chair <a href="https://qgis.org">QGIS.org</a> · VP <a href="https://osgeo.org">OSGEO.org</a></p>
8383

8484
</section>
@@ -87,15 +87,25 @@ <h1>Kreisbogen in QGIS &amp; Co</h1>
8787

8888

8989

90+
<section >
91+
92+
<h2>Arcs?</h2>
93+
<p><img src="assets/arcs/be.png" alt=""></p>
94+
95+
</section>
96+
97+
98+
99+
100+
90101
<section >
91102

92103
<h2>Arcs?</h2>
93104
<ul>
94-
<li>why we need it</li>
95105
<li>maths instead of many little segments</li>
96-
<li>today in fossgis</li>
97106
<li>segmentation leads to diverse datasets</li>
98107
</ul>
108+
<p><img src="assets/arcs/pb-sol.png" alt=""></p>
99109

100110
</section>
101111

@@ -106,7 +116,8 @@ <h2>Arcs?</h2>
106116
<section >
107117

108118
<h2>10 y ago</h2>
109-
<p>QGIS HF already discussions</p>
119+
<p>QGIS HF and <a href="http://QGIS.ch">QGIS.ch</a> already a subject</p>
120+
<p><img src="assets/arcs/past.png" alt=""></p>
110121

111122
</section>
112123

@@ -116,11 +127,12 @@ <h2>10 y ago</h2>
116127

117128
<section >
118129

119-
<h2>no start at 0</h2>
130+
<h2>did not start from scratch</h2>
120131
<ul>
121132
<li>PG, GeoPackage, GDAL can store/understan arcs</li>
122133
<li>QGIS can edit arcs</li>
123134
</ul>
135+
<p><img src="assets/arcs/qgis.png" alt=""></p>
124136

125137
</section>
126138

@@ -130,9 +142,10 @@ <h2>no start at 0</h2>
130142

131143
<section >
132144

133-
<h2>BUT</h2>
134-
<p>no geom operations!</p>
135-
145+
<h2>BUT no geometric operations!</h2>
146+
<video alt="arcs" class="styled-video" controls="controls;" autoplay="autoplay" loop="loop">
147+
<source src="assets/arcs/arcs.mp4" type="video/mp4"/>
148+
</video>
136149
</section>
137150

138151

@@ -143,8 +156,9 @@ <h2>BUT</h2>
143156

144157
<h2>so where do we fix this</h2>
145158
<ul>
146-
<li>we did a plugin years ago -&gt; terrible idea as only partially fixes the issue and at the higest level</li>
159+
<li>we did a plugin years ago</li>
147160
</ul>
161+
<p><img src="assets/arcs/autocurve.gif" alt=""></p>
148162

149163
</section>
150164

@@ -157,9 +171,10 @@ <h2>so where do we fix this</h2>
157171
<h2>how does OSS work</h2>
158172
<ul>
159173
<li>specialised libraries that do one thing well and are reusable</li>
160-
<li>dont do all in a plugin/extention, try to bring things upstream as good contributors do</li>
161-
<li>GEOS</li>
174+
<li>dont do all in a plugin/extention/integration</li>
175+
<li>good contributors try to bring/fund things upstream</li>
162176
</ul>
177+
<p><img src="assets/arcs/dependency.png" alt="" class="vertical"></p>
163178

164179
</section>
165180

@@ -169,10 +184,22 @@ <h2>how does OSS work</h2>
169184

170185
<section >
171186

172-
<h2>what did we do 1</h2>
187+
<h2>Solution?</h2>
188+
<h3>Fix it in GEOS</h3>
189+
<p><img src="assets/arcs/geos.webp" alt=""></p>
190+
191+
</section>
192+
193+
194+
195+
196+
197+
<section >
198+
199+
<h2>what did we do 2024</h2>
173200
<ul>
174201
<li>Crowfunding 25K</li>
175-
<li>vorprojekt -&gt; make geos understand arcs (QGIS did the segmentation before sending to geos)</li>
202+
<li>pilot project -&gt; make geos understand arcs</li>
176203
<li>geos community showed acceptance for the subject, project was merged</li>
177204
</ul>
178205

@@ -184,7 +211,7 @@ <h2>what did we do 1</h2>
184211

185212
<section >
186213

187-
<h2>what did we do 2</h2>
214+
<h2>what did we do 2025-2026</h2>
188215
<ul>
189216
<li>crowdfunding 125K</li>
190217
<li>Implementation in GEOS</li>
@@ -199,11 +226,34 @@ <h2>what did we do 2</h2>
199226
<section >
200227

201228
<h2>First of all thanks!</h2>
202-
<p>list from MK <a href="https://chat.google.com/dm/1Mgf7gAAAAE/9CD839QJctc/9CD839QJctc?cls=10">https://chat.google.com/dm/1Mgf7gAAAAE/9CD839QJctc/9CD839QJctc?cls=10</a></p>
229+
<div class="container">
230+
<div class="col">
231+
<ul>
232+
<li>Bundesamt für Landestopografie swisstopo</li>
233+
<li>Verein AV-QGIS</li>
234+
<li>Kanton Schaffhausen</li>
235+
<li>Grundbuch- und Vermessungsamt Basel-Stadt</li>
236+
<li>Stierli + Ruggli Ingenieure + Raumplaner AG</li>
237+
<li>Kantonale Verwaltung Appenzell Innerrhoden</li>
238+
<li>Amt für Grundbuch und Geoinformation des Kantons Zug</li>
239+
<li>Ville de Morges</li>
240+
<li>Amt für Informatik des Kantons Thurgau</li>
241+
</ul>
242+
</div>
243+
<div class="col">
203244
<ul>
204-
<li><a href="http://QGIS.de">QGIS.de</a></li>
205-
<li>Kt ZUG</li>
245+
<li>Kantonale Verwaltung Appenzell Innerrhoden</li>
246+
<li>Kanton Basel-Landschaft</li>
247+
<li>Amt für Geoinformation des Kantons Bern</li>
248+
<li>QGIS Anwendergruppe Schweiz</li>
249+
<li>Kanton Glarus - Bau und Umwelt</li>
250+
<li>Metron Raumentwicklung AG</li>
251+
<li>Trigonet AG</li>
252+
<li>QGIS Deutschland</li>
253+
<li>Kanton ZUG</li>
206254
</ul>
255+
</div>
256+
</div>
207257

208258
</section>
209259

@@ -214,9 +264,16 @@ <h2>First of all thanks!</h2>
214264
<section >
215265

216266
<h2>where are we at 2024-2025</h2>
217-
<p>2024: Add representation for curved geometry types to GEOS, input/output using WKT and WKB
218-
2025: Low-level algorithms for curves: get intersection point(s) and arc(s) of two curves.
219-
Compute all intersection points between two geometries</p>
267+
<h3>2024</h3>
268+
<ul>
269+
<li>Add representation for curved geometry types to GEOS</li>
270+
<li>input/output using WKT and WKB</li>
271+
</ul>
272+
<h3>2025</h3>
273+
<ul>
274+
<li>Low-level algorithms for curves: get intersection point(s) and arc(s) of two curves.</li>
275+
<li>Compute all intersection points between two geometries</li>
276+
</ul>
220277

221278
</section>
222279

@@ -227,16 +284,16 @@ <h2>where are we at 2024-2025</h2>
227284
<section >
228285

229286
<h2>where are we at 2026</h2>
230-
<p>Add functions to convert between curved geometries and linear approximations</p>
231-
<pre><code>The purpose of implementing these routines in GEOS is so we can accept curved inputs for all GEOS C API functions, and then incrementally add true curve support without clients needing to change their
232-
code.
233-
Functionality is similar to QGIS, with the addition of a &quot;maximum arc angle&quot;
234-
in line-to-curve conversion, as described in https://github.com/qgis/QGIS/pull/35875#issuecomment-627300302
235-
Work-in-progress PR: https://github.com/libgeos/geos/pull/1382
236-
237-
Adding true curve support for some C API functions where linearization really
238-
makes no sense: GEOSBoundary, GEOSNormalize, perhaps GEOSDensify.
239-
</code></pre>
287+
<ul>
288+
<li>Added functions to convert between curved geometries and linear approximations</li>
289+
<li>accept curved inputs for all GEOS C API functions</li>
290+
<li>incrementally add true curve support without clients needing to change their code.</li>
291+
<li>Functionality is similar to QGIS, with the addition of a “maximum arc angle”
292+
in line-to-curve conversion</li>
293+
<li>Work-in-progress PR: <a href="https://github.com/libgeos/geos/pull/1382">https://github.com/libgeos/geos/pull/1382</a></li>
294+
<li>Adding true curve support for some C API functions where linearization really
295+
makes no sense: GEOSBoundary, GEOSNormalize, perhaps GEOSDensify.</li>
296+
</ul>
240297

241298
</section>
242299

@@ -247,9 +304,11 @@ <h2>where are we at 2026</h2>
247304
<section >
248305

249306
<h2>what is next</h2>
250-
<p>2026 April - ?:</p>
251-
<p>Adding true curve support to Overlay engine. (GEOSIntersection, GEOSDifference, etc.)
252-
Expected done by end of 2026, assuming current rate of funding.</p>
307+
<h3>2026 April - ?</h3>
308+
<ul>
309+
<li>Adding true curve support to Overlay engine. (GEOSIntersection, GEOSDifference, etc.)</li>
310+
<li>Expected done by end of 2026, assuming current rate of funding.</li>
311+
</ul>
253312

254313
</section>
255314

@@ -262,7 +321,8 @@ <h2>what is next</h2>
262321
<h2>Challenges</h2>
263322
<ul>
264323
<li>tollerance in java ili2db hardcoded based on the LV95 and educated guessing, not possible for geos since it works on all CRS precisions</li>
265-
<li>mantain arcs that belong to the same circle over multiple calculation steps -&gt; see arcs defined by 3 points vs arcs with center + radius</li>
324+
<li>mantain arcs that belong to the same circle over multiple calculation steps
325+
-&gt; see arcs defined by 3 points vs arcs with center + radius</li>
266326
<li>Robustness issues: Open source GIS libraries have 25 years of experience and accumulated
267327
test cases for robustness of operations on linear geometries. This is lacking for curved
268328
types. It’s expected that issues will come up once the curve algorithms encounter
@@ -279,8 +339,8 @@ <h2>Challenges</h2>
279339

280340
<h2>Roadmap</h2>
281341
<ul>
282-
<li>vorprojekt integriert in geos 3.13 (Sepember 2024)</li>
283-
<li>Q3 2026 finished in GEOS</li>
342+
<li>Pilot project integrated in geos 3.13 (Sepember 2024)</li>
343+
<li>Q3 2026 finished implementation in GEOS</li>
284344
<li>Q4 Stabilisation</li>
285345
<li>Target QGIS ~4.6</li>
286346
</ul>
@@ -293,14 +353,31 @@ <h2>Roadmap</h2>
293353

294354
<section >
295355

296-
<h2>und wieso das ganze</h2>
356+
<h2>And why this?</h2>
297357
<ul>
298-
<li>in ch we have AV that requires arcs</li>
358+
<li>in CH we have AV that requires arcs</li>
299359
<li>datasets building on it z.b Nutzungsplanung</li>
300360
<li>difficult to work properly with OS GIS</li>
301-
<li>AV-QGIS</li>
302-
<li>QGIS as the tool for this area</li>
361+
<li>AV-QGIS is coming</li>
362+
<li>QGIS to become THE tool for this use cases</li>
363+
</ul>
364+
365+
</section>
366+
367+
368+
369+
370+
371+
<section >
372+
373+
<h2>Want to know more?</h2>
374+
<h3>QGIS User conference and contributor meeting 2026</h3>
375+
<ul>
376+
<li>4-9 October 2026</li>
377+
<li>Laax, Switzerland</li>
378+
<li><a href="http://conference.qgis.org">conference.qgis.org</a></li>
303379
</ul>
380+
<p><img src="assets/arcs/qgis-uc.jpg" alt=""></p>
304381

305382
</section>
306383

@@ -310,7 +387,15 @@ <h2>und wieso das ganze</h2>
310387

311388
<section >
312389

313-
<h2>see you in the alps -&gt; QGIS conf</h2>
390+
<h1>Thank you 🙏 Questions?</h1>
391+
<br/>
392+
<br/>
393+
<br/>
394+
<p><a href="https://slides.opengis.ch/talk-interlis/arcs">slides.opengis.ch/talk-interlis/arcs</a>
395+
<br/>
396+
<br/>
397+
<br/></p>
398+
<p><a href="https://linkedin.com/mbernasocchi">@mbernasocchi</a> · <a href="https://opengis.ch">OPENGIS.ch</a> · <a href="https://qfield.org">QField.org</a> · <a href="https://berna.io">berna.io</a></p>
314399

315400
</section>
316401

talk-interlis/assets/arcs/arcs.mp4

1.78 MB
Binary file not shown.
368 KB
Loading

talk-interlis/assets/arcs/be.png

175 KB
Loading
52.6 KB
Loading
61.8 KB
Loading

talk-interlis/assets/arcs/past.png

188 KB
Loading
223 KB
Loading

talk-interlis/assets/arcs/pb.png

437 KB
Loading
77.1 KB
Loading

0 commit comments

Comments
 (0)