[OSRM-talk] Island hopping

Richard Fairhurst richard at systemeD.net
Wed Oct 15 13:36:10 UTC 2014

Zenon Panoussis wrote:
> If you think that I have a valid logical argument that is based on
> false factual premises, I'd be very interested to hear about them.

Yes: I think you misunderstand standard OSM mapping practice.

An intersection in OSM has clear, unambiguous semantic meaning: there is 
a 'connection' here. This might be road-road (junction), it might be 
road-rail (level crossing), it might be road-water (ford), etc.

The tagging guidance is that two ferries can share a coastline 
'arrival'/'departure' node - quite valid as there is, indeed, a routable 
connection here.

It does not say that ferries should share at-sea nodes. A shared at-sea 
node would be implying a connection where there isn't. That's why ferry 
entrances to harbours are mapped as discrete ways (e.g. 
http://osm.org/go/euiDsNOz). Putting a shared at-sea node is not an 
"OSRM bug" as you claim, it is contrary to something that's been core to 
OSM for the almost ten years I've been involved in it, and is explicitly 
discouraged in the tagging guidance ("Do not combine two different parts 
of the route when approaching land").

The related issue is whether changing from ferry to ferry at a coastline 
node is valid. Inevitably it has to be: you can't solve this without 
ferry timetable data, and that is out of scope for OSRM and indeed for 
OSM itself.

Looking at the data for your Piraeus issue, there appear to be three 
mapping techniques mixed together:

- route=ferry
- waterway=seaway
- route relations of type=ferry

As per above, you should not share at-sea nodes between route=ferry.

If there is a common 'seaway' out of a port, then I guess you could use 
shared-node junctions when the seaways diverge. However, these are _not_ 
junctions between routes, so these ways should not be tagged as route=ferry.

So the two 'correct' solutions would be:

1. Discrete ways with route=ferry, no connection other than on the coastline
2. Ways with waterway=seaway, at-sea shared nodes possible, ferry routes 
made up of these ways stored in route relations

...and never the twain shall meet.

OSRM trunk does not yet support route relations, so 2 isn't an option 
for routable ferries right now: your call whether this influences your 
mapping. In practice, I think 2 is unlikely to be a feasible option for 
OSRM for a while for a couple of other reasons.


More information about the OSRM-talk mailing list