Skip to content

Offer the segregated field on shared refuge island presets - #2792

Open
KTibow wants to merge 1 commit into
openstreetmap:mainfrom
KTibow:segregated-on-refuge-islands
Open

Offer the segregated field on shared refuge island presets#2792
KTibow wants to merge 1 commit into
openstreetmap:mainfrom
KTibow:segregated-on-refuge-islands

Conversation

@KTibow

@KTibow KTibow commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Description, Motivation & Context

Cycle & Foot Refuge Island (highway=cycleway + cycleway=traffic_island + foot=designated + bicycle=designated) does not offer the segregated field, even though:

  • Cycle & Foot Path, which carries the same foot=designated + bicycle=designated combination, does offer it, and
  • every crossing preset on either side of such an island offers it — highway/cycleway/crossing/{marked,unmarked,uncontrolled,traffic_signals,bicycle_foot} and the highway/path/crossing/* equivalents.

So today the schema says segregation is a meaningful property of the crossing, and of the path leading up to it, but not of the refuge in the middle of that same crossing.

That does not look like a decision anyone made. The preset was added in 874cea8 with no fields key at all, so it implicitly inherited highway/cycleway (plain Cycle Path) through preset-id nesting; #1855 later made that implicit inheritance explicit across the repo by script. The preset already declares "locationSetCrossReference": "{presets/highway/cycleway/bicycle_foot}" — it knows Cycle & Foot Path is its counterpart, it just does not inherit fields from it.

This PR changes fields to inherit from highway/cycleway/bicycle_foot. highway/path/traffic_island_shared inherits its fields from this preset, so it is fixed by the same one-line change.

Resulting field list for both _shared island presets:

name, segregated, oneway, surface, smoothness, width, structure, access, incline

Side effect worth flagging: this also drops tunnel/name from the field list, because Cycle & Foot Path does not carry it. That seems right for a refuge island in the middle of a carriageway, but say the word and I will list the fields explicitly instead to keep it.

The non-shared highway/cycleway/traffic_island and highway/footway/traffic_island presets are deliberately untouched — without both foot and bicycle designated there is nothing to segregate.

Related issues

There is no existing issue for this. Related:

Links and data

Relevant OSM Wiki links:

Relevant tag usage stats:

segregated is on ~1.87 M objects — 1,532,235 no (82.0%) and 336,198 yes (18.0%).

cycleway=traffic_island 9,167 objects · path=traffic_island 2,817 · footway=traffic_island 169,006.

Mappers already tag segregated on refuge islands, and they tag it consistently. Of 8,641 cycleway=traffic_island ways worldwide, 3,499 (40.5%) already carry segregated — 3,016 no, 481 yes, 2 junk values. They are doing this without any field in iD.

To check whether those values carry real information or are just noise on a 6-metre stub, I compared each island's value against every other segregated way sharing a node with it:

introduced by n agrees with all segregated neighbours conflicts with all of them no neighbour value to compare
any editor other than StreetComplete 3,262 96.2% 2.2% 160
StreetComplete's AddCyclewaySegregation quest 235 91.9% 5.2% 25

Median island length is 6.0 m for no and 7.2 m for yes, so the yes answers are not just being given on unusually long islands — surveyors are reporting a genuine painted division across a short refuge, and ~19 times in 20 it matches the corridor it belongs to.

A worked example: way/1372983397 in Tallinn (14.3 m, segregated=yes, cycleway:width=2.6, separate cycleway:surface/footway:surface, check_date=2026-03-17). Its west end joins a segregated=no shared path; its east end joins a highway=cycleway foot=no plus a parallel footway=traffic_island, i.e. segregation expressed as two separate ways. Three different segregation states in ~40 m of one corridor — the island's value is not inferable from either neighbour.

Method, for reproducibility: Overpass for the elements, then each way's full version history from the OSM API to find the version that first introduced segregated, then that version's changeset from /api/0.6/changesets?changesets=… to read created_by and StreetComplete:quest_type. Base element pull is a 2026-07-24 Overpass snapshot; changeset metadata is live. Population is ways currently carrying both tags, so islands where either tag was later removed are not counted.

Open question

Cycle & Foot Path lists segregated: "*" in its removeTags (#910). I have deliberately not added an equivalent removeTags block to the island presets, since SCHEMA.md notes that editors may already remove the old preset's field tags automatically and I would rather not widen this PR. Happy to add it if you would prefer the parity.


Disclosure: this change and the analysis behind it were researched and drafted by Claude Opus 5, working at my direction.

"Cycle & Foot Refuge Island" carries the same foot=designated +
bicycle=designated combination as "Cycle & Foot Path", but inherited
its field list from plain "Cycle Path", so the segregated field was
not offered. Inherit from highway/cycleway/bicycle_foot instead, which
the preset already cross-references for its locationSet.

highway/path/traffic_island_shared inherits its fields from this
preset, so it is fixed by the same change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Br4173HXvGTDMgXiVLnBga
@github-actions

Copy link
Copy Markdown

🍱 Your pull request preview is ready

Please use this preview to check your changes. Ideally use the test documentation template and document your test results by commenting on the PR. This will speed up the review process for everyone.

Use the Compare View on the Tagging Schema Browser (alpha) to see the changes of your PR against the main branch.

FYI, once this PR is merged, you can use the iD Editor Preview to test your changes in interaction with all other changes.

@KTibow

KTibow commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

segregated is now available for shared refuge islands ✅
image

@matkoniecz

Copy link
Copy Markdown
Collaborator

Have you verified presumably Claude's PR description?

Can it be maybe shortened?

@KTibow

KTibow commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

It's a long justification for a simple change (adding /bicycle_foot). The TLDR is that it's valid to include segregated on shared traffic islands, and people are already doing this in other editors including StreetComplete frequently and correctly, so iD should support this too.

@matkoniecz matkoniecz added the add-field add existing field to more entries, for field creation see new-field label Sep 2, 2026

@andrewharvey andrewharvey left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I didn't review the lengthy AI generated description, but going by the diff and screenshot, I agree with this change, a "Cycle & Foot Refuge Island" (a way tagged as highway=cycleway + cycleway=traffic_island + bicycle=designated + foot=designated) should still include the segregated=* field.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

add-field add existing field to more entries, for field creation see new-field

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants