[Tagging] Equivalence relation (was: Re: Differences in cycleways)

Steve Bennett stevagewp at gmail.com
Tue Jan 11 03:26:44 GMT 2011

  On 11/01/2011 12:20 AM, Richard Mann wrote:
> I put adjacent=yes on the highway=cycleway, so the user of the
> cycleway=track tag on the main road can ignore ways with adjacent=yes
> on them. The user who'd prefer to use highway=cycleway ways doesn't
> know that the cycleway=track is a duplicate, but routers only have to
> give a slight preference for highway=cycleway over cycleway=track to
> use the "right" one (and even if they use the "wrong" one, it doesn't
> much matter anyway).
IMHO, this is being extremely optimistic about the powers of a router. 
So you're saying that a router could see the "adjacent=yes", then locate 
a nearby cycleway which is "adjacent" in some way, and conclude that the 
two refer to the same thing?

My suggestion: let's get a relation happening, asap. Something like:

* type=equivalence

* cycleway=track
* role: cycleway

Bike path:
* highway=cycleway
* role: highway

This is just brainstorming. But the idea is you'd read the above as "the 
cycleway tag on this road refers to the same object as the highway tag 
on the bike path".

The same could then apply to things like a central node for a large object:

* type=equivalence

* amenity=hospital
* role: amenity

* amenity=hospital
* role: amenity

The relation is saying that there is only one hospital, and it is 
defined twice.

(This example makes me think there could be a default, so you don't 
always have to specify the roles...but that could be messy).


More information about the Tagging mailing list