Skip to content

Continue Overture support: POIs, Places, Airports#579

Merged
bdon merged 6 commits intomainfrom
migurski/continue-overture
Mar 31, 2026
Merged

Continue Overture support: POIs, Places, Airports#579
bdon merged 6 commits intomainfrom
migurski/continue-overture

Conversation

@migurski
Copy link
Copy Markdown
Collaborator

@migurski migurski commented Mar 12, 2026

  • Airport runways and taxiways now included by referencing Overture theme=base + type=infrastructure
  • Places at medium and low zoom levels now included with existing Wikidata/QRank process
  • POI confidence-based sorting and filtering removes some junk points

🤖 This PR assisted by Claude Code + Sonnet 4

Current HEAD tiles visible at https://protomaps.dev/~migurski/Oakland-visualtests-0ef1b8a.pmtiles

Zoom 4+ places, OSM at left and this PR at right:

Screenshot 2026-03-12 at 6 40 00 PM Screenshot 2026-03-12 at 6 40 25 PM Screenshot 2026-03-12 at 6 40 35 PM Screenshot 2026-03-12 at 6 40 47 PM Screenshot 2026-03-12 at 6 41 00 PM

Zoom 12+ airports, OSM at left and this PR at right:

Screenshot 2026-03-12 at 6 42 00 PM Screenshot 2026-03-12 at 6 42 41 PM Screenshot 2026-03-12 at 6 42 49 PM Screenshot 2026-03-12 at 6 42 59 PM

POI selection:

Screenshot 2026-03-12 at 6 43 37 PM Screenshot 2026-03-12 at 6 43 54 PM

@migurski migurski self-assigned this Mar 12, 2026
migurski and others added 3 commits March 12, 2026 14:44
Add Overture `theme=base / type=infrastructure / subtype=airport` runway and
taxiway linestrings to the roads layer, matching OSM parity where
`aeroway=runway` appears with `kind=aeroway`, `kind_detail=runway`, `min_zoom=9`.

- Add `overtureAerowayKindsIndex` mapping Overture class=runway/taxiway/taxilane
  to kind=aeroway with appropriate kind_detail values
- Extend `processOverture()` with a new branch for base/infrastructure features,
  emitting line geometries at min_zoom=9 (runway) or min_zoom=10 (taxiway)
- Add two Overture unit tests: kind_aeroway_fromRunwayClass and
  kind_aeroway_fromTaxiwayClass

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Fix populationFallback in processOverture: use 0 when population > 0,
  so cities/towns with real population data no longer get forced into
  fallback zoom levels (was hardcoded to 1, causing city minZoom=8
  instead of 7)
- Add wikidata lookup block to processOverture mirroring the OSM path,
  so entries in places.csv (Q62, Q16553, Q169943, etc.) now override
  minZoom and populationRank for Overture locality features
- Output wikidata attribute on Overture features that have it
- Add failing-first tests for SF (Q62→minZoom=2), San Jose (Q16553→4),
  San Mateo (Q169943→6), Saratoga (Q927163→7, pop present no fallback)
- Update testOaklandCity: min_zoom 9→8 (population present, no fallback)
- Use real Overture UUIDs from Oakland-visualtests.parquet in all new tests

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@migurski migurski force-pushed the migurski/continue-overture branch 2 times, most recently from 9bdfcfe to 99f8914 Compare March 13, 2026 01:33
migurski and others added 2 commits March 12, 2026 18:34
Drop features below confidence 0.65 (junk tier: ~127k features dominated
by real estate listings, beauty salons, ATMs from uncertain sources).
Within the remaining features, use confidence to break sort key ties so
higher-confidence POIs win label collision resolution at the same zoom.

Sort key: minZoom * 1000 - (int)(confidence * 100), so confidence=0.99
scores 99 points lower (higher priority) than confidence=0.65.

Tests updated: websiteQid_ineligibleCategory_dropped and
websiteQid_lowConfidence_dropped now correctly expect zero features.
kind_nationalPark_fromBasicCategory switched to Pinnacles National Park
(4d619bc0, confidence=0.917) since the previous Alcatraz fixture
(814b8a78, confidence=0.639) falls below the new cutoff.

Prompt: "Let's bring more Overture confidence into POI rendering: make
higher-confidence POIs higher rendering priority, and simply omit ones
below 0.65 (junk tier)"

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@migurski migurski changed the title [WIP] Continue Overture support Continue Overture support: POIs, Places, Airports Mar 13, 2026
@migurski migurski marked this pull request as ready for review March 13, 2026 01:47
@migurski migurski mentioned this pull request Mar 13, 2026
1 task
….java

Let's turn the repetition there into a new private method called getZoomsPops that results in minZoom, populationRank, etc. assigned. Does getZoomsPops() need both sf and sf2 args, or can it get by with just sf2?

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@sonarqubecloud
Copy link
Copy Markdown

@migurski migurski mentioned this pull request Mar 13, 2026
1 task

public void processOverture(SourceFeature sf, FeatureCollector features) {
if ("base".equals(sf.getString("theme")) && "infrastructure".equals(sf.getString("type"))) {
if (!"airport".equals(sf.getString("subtype")))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The motivation of the matcher object was to reduce this procedural special-casing in the java method bodies, but it could be unavoidable for now

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, though in this case the "theme" matching might best fit outside the matcher.

@bdon bdon merged commit cd50047 into main Mar 31, 2026
6 checks passed
@bdon bdon deleted the migurski/continue-overture branch March 31, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants