Set 5.9 wegen-overlay verfijnen — gaten, dubbelingen, losse stukjes #126

Closed
opened 2026-06-14 22:27:57 +02:00 by jelmerk · 1 comment
jelmerk commented 2026-06-14 22:27:57 +02:00 (Migrated from codeberg.org)

Context — set 5.9 ("Wegen op de kaart", v2.28.0) toont een A-snelwegen-overlay uit OSM. Werkt functioneel maar de geometrie is slordig: er zitten nog gaten in het net, dubbele lijnen op sommige trajecten, en losse stukjes die nergens op aansluiten.

Huidige pipeline (data/fetch-set59.js + data/process-set59.js):

  • Overpass bbox-fetch van alle highway=motorway ways in NL-bbox.
  • Filter: hardcoded NL-A-wegen-lijst + point-in-polygon clip tegen provincie_2023.geojson (Duitse/Belgische wegen weg).
  • chainSegments() rijgt way-segmenten aaneen per A-ref (maxGap 0.03 ≈ 3km).
  • RDP eps 0.008 (~800m).
  • Output: wegen-nl.geojson, 43 A-wegen, MultiLineString per route.

Bekende problemen:

  1. Gaten — chainSegments laat gaten waar segmenten net buiten maxGap vallen, of waar de point-in-NL clip een middenstuk wegknipte (way-midpoint toevallig net over de grens). Een way die NL→DE→NL loopt verliest het middenstuk.
  2. Dubbelingen — heen- en terugrijbaan (oneway-paren) worden beide gehouden → dubbele lijn. Zou gededupliceerd moeten worden (één lijn per traject, niet per rijrichting).
  3. Losse stukjes — afritten/verbindingsbogen met dezelfde ref blijven als losse MultiLineString-onderdelen hangen.

Mogelijke aanpakken:

  • Dedup oneway-paren: groepeer parallel-lopende ways binnen ~50m en houd er één.
  • Point-in-NL clip per-punt i.p.v. per-way-midpoint, met re-chaining zodat NL→DE→NL niet het middenstuk verliest (of: clip pas ná chaining).
  • Filter losse fragmenten korter dan X km weg.
  • Overweeg nat_ref/network-tags voor schonere NL-only selectie.
  • Alternatief: stop met chaining-vanuit-ways en gebruik de OSM route-relations (type=route, route=road, ref=A1) die de complete weg als geordende member-lijst geven.

Effort: ~2-3u. Niet urgent — de overlay is functioneel bruikbaar voor de les.

**Context** — set 5.9 ("Wegen op de kaart", v2.28.0) toont een A-snelwegen-overlay uit OSM. Werkt functioneel maar de geometrie is slordig: er zitten nog gaten in het net, dubbele lijnen op sommige trajecten, en losse stukjes die nergens op aansluiten. **Huidige pipeline** (`data/fetch-set59.js` + `data/process-set59.js`): - Overpass bbox-fetch van alle `highway=motorway` ways in NL-bbox. - Filter: hardcoded NL-A-wegen-lijst + point-in-polygon clip tegen provincie_2023.geojson (Duitse/Belgische wegen weg). - `chainSegments()` rijgt way-segmenten aaneen per A-ref (maxGap 0.03 ≈ 3km). - RDP eps 0.008 (~800m). - Output: `wegen-nl.geojson`, 43 A-wegen, MultiLineString per route. **Bekende problemen:** 1. **Gaten** — chainSegments laat gaten waar segmenten net buiten maxGap vallen, of waar de point-in-NL clip een middenstuk wegknipte (way-midpoint toevallig net over de grens). Een way die NL→DE→NL loopt verliest het middenstuk. 2. **Dubbelingen** — heen- en terugrijbaan (oneway-paren) worden beide gehouden → dubbele lijn. Zou gededupliceerd moeten worden (één lijn per traject, niet per rijrichting). 3. **Losse stukjes** — afritten/verbindingsbogen met dezelfde ref blijven als losse MultiLineString-onderdelen hangen. **Mogelijke aanpakken:** - Dedup oneway-paren: groepeer parallel-lopende ways binnen ~50m en houd er één. - Point-in-NL clip per-punt i.p.v. per-way-midpoint, met re-chaining zodat NL→DE→NL niet het middenstuk verliest (of: clip pas ná chaining). - Filter losse fragmenten korter dan X km weg. - Overweeg `nat_ref`/`network`-tags voor schonere NL-only selectie. - Alternatief: stop met chaining-vanuit-ways en gebruik de OSM **route-relations** (`type=route, route=road, ref=A1`) die de complete weg als geordende member-lijst geven. **Effort:** ~2-3u. Niet urgent — de overlay is functioneel bruikbaar voor de les.
jelmerk commented 2026-06-15 10:43:20 +02:00 (Migrated from codeberg.org)

Fixed in v2.28.2 — centerline-extractie (grid-snap collapse + double-sweep + greedy-extend + ring-sluiting + parallel-filter), geometrie uit echte OSM-coördinaten. Dubbelingen/gaten/losse stukjes weg, A10-ring dicht. 35 hoofdwegen; obscure spurs (A270 e.d.) eruit.

Fixed in v2.28.2 — centerline-extractie (grid-snap collapse + double-sweep + greedy-extend + ring-sluiting + parallel-filter), geometrie uit echte OSM-coördinaten. Dubbelingen/gaten/losse stukjes weg, A10-ring dicht. 35 hoofdwegen; obscure spurs (A270 e.d.) eruit.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jelmer/topoquiz#126
No description provided.