Skip to content

[codex] Add Bend landmarks, bike resources, and trails#91

Merged
kwiens merged 6 commits into
mainfrom
codex/add-bend-layer-resources
Jun 21, 2026
Merged

[codex] Add Bend landmarks, bike resources, and trails#91
kwiens merged 6 commits into
mainfrom
codex/add-bend-layer-resources

Conversation

@kwiens

@kwiens kwiens commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Summary

Adds Bend-specific sidebar/map data so the Bend layer is closer to feature parity with Chattanooga:

  • Adds 7 Bend bike resources, including local shops and REI Bend.
  • Adds 12 Bend landmarks and attractions, excluding the Visitor Center per request.
  • Adds generated Bend curated MTB trail data and elevation profiles derived from OSM geometry.
  • Renders Bend curated trails from the nationwide OSM trails source by matched OSM way ids.
  • Resolves OSM_ID-backed trail clicks and ride auto-detection back to curated trail names.

Data scope

The PR includes only runtime app data needed by the map: src city data and public elevation JSON files. Raw scrape/matching inputs, helper scripts, and onX/MTB Project validation docs/scripts are intentionally not included.

Impact

When NEXT_PUBLIC_CITY_ID=bend is active, the Attractions, Bike Resources, and MTB Trails layers can render Bend-specific markers/trails instead of empty lists. Trail selection and ride auto-detection dispatch curated Bend trail names rather than raw OSM IDs.

Validation

  • pnpm test:run
  • pnpm lint

@vercel

vercel Bot commented Jun 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
bikemap Ready Ready Preview Jun 21, 2026 8:00pm

Request Review

@kwiens
kwiens changed the base branch from feat/osm-nationwide-trails to main June 21, 2026 17:26
Populate the Bend MTB pane with 169 curated trails. Trails are matched to
OSM ways by geometry (scripts/align_bend_geometry.py decodes the
bendbikerides reference polylines and map-matches them to cached Overpass
ways), then length + per-point elevation are sampled from Mapbox Terrain-RGB
(scripts/build_bend_trails.py).

Rendering reuses the shared nationwide OSM trails tileset matched by OSM_ID
(CuratedTrailLayerConfig.matchBy='osmId'), with a base filter restricting the
curated layer to the matched ids and a deterministic per-way owner so a shared
way's color and a click's resolved trail always agree. The nationwide layer
excludes curated ids to avoid double-stroking. Auto-detect + map-click resolve
OSM_ID to the curated trail name.

Includes per-trail elevation profiles, the bendbikerides reference dataset,
and the OSM geometry match table.
@kwiens kwiens changed the title [codex] Add Bend landmarks and bike resources [codex] Add Bend landmarks, bike resources, and trails Jun 21, 2026
kwiens added 2 commits June 21, 2026 12:19
The scraper, geometry aligner, and dataset generator for the Bend MTB trails,
plus the bendbikerides reference data and OSM geometry match table. (These were
dropped from the prior commit by the lint-staged hook, which doesn't match
.py/.csv globs.)

Hardening: the aligner now resolves flexible-polyline axis order by validating
each trail's geometry against its scraped flag point (with a decode quality
gate) instead of a magnitude heuristic; the scraper anchors elevation stats to
the elevation object, allows negative elevations, and separates network retries
from parse errors. Output is byte-identical on current Bend data.
@kwiens
kwiens marked this pull request as ready for review June 21, 2026 19:57
@kwiens
kwiens merged commit 4b62966 into main Jun 21, 2026
1 check passed
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.

1 participant