Skip to content

Copy crossing island tag to crossing nodes#12421

Open
KTibow wants to merge 1 commit into
openstreetmap:developfrom
KTibow:copy-crossing-island-to-node
Open

Copy crossing island tag to crossing nodes#12421
KTibow wants to merge 1 commit into
openstreetmap:developfrom
KTibow:copy-crossing-island-to-node

Conversation

@KTibow

@KTibow KTibow commented Jun 8, 2026

Copy link
Copy Markdown

Description, Motivation & Context

When iD detects a road/path crossing and suggests creating a missing crossing node, it already copies known crossing details from the crossing way to the generated highway=crossing node. This currently includes the crossing type and crossing:markings.

This extends that behavior to also copy crossing:island from the crossing way to the generated crossing node.

This keeps refuge island information with the crossing node when iD automatically creates or repairs the crossing point, matching the existing behavior for crossing markings.

Testing

  • npm run lint -- --quiet passed.
  • npm run test:once -- test/spec/validations/crossing_ways.js passed its assertions: 83 passed, including the new crossing:island test.
  • That focused spec still emitted the same unhandled SyntaxError: "undefined" is not valid JSON errors from history.migrateHistoryData during coreContext setup on my laptop. This matches the baseline local test issue seen in unrelated existing specs.
  • Verified in preview environment: correctly copies crossing island tag over
image

Disclosure

Generated with GPT-5.5 with human oversight.

@Dimitar5555

Copy link
Copy Markdown
Contributor

The linear way might cover more than one carriageway, so it would have crossing:island=yes across the whole length. But each hw=crossing node would not have such island, so crossing:island=yes on the node would be incorrect. See the example situation below.

image

@KTibow

KTibow commented Jun 8, 2026

Copy link
Copy Markdown
Author

That's true but I'd expect it to be rather uncommon and easily manually fixable (remember the add point action is manually triggered). I'd also argue that that specific crossing would be better mapped as a crossing + a foot path + another crossing, especially when the current way's crossing:island=yes is mostly wasted (algorithms care about crossing nodes, not crossing ways).

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