[OSRM-talk] "nearest suitable road segment" Was: Helgoland in St. Peter-Ording

Florian Lohoff f at zz.de
Wed Aug 17 21:00:27 UTC 2016

On Wed, Aug 17, 2016 at 01:26:44PM -0700, Daniel Patterson wrote:
> Hi Florian,
>   This sounds like more of a geocoding problem than a routing problem.
>   OSRM itself doesn't know anything about addresses, it only works
>   with coordinates and road geometry.  All OSRM has internally are
>   street names, not street numbers or place names.
>   In order to route from "Münsterstraße 15a", it must first be turned
>   into a coordinate.  On the OSM website, the Nominatim service is
>   used to do this.  Once the web interface has a coordinate for an
>   address, it gives that to OSRM for routing.  OSRM snaps that point
>   to the nearest road, then finds a route.
>   You might want to do some digging into how Nominatim determines
>   address coordinates, and possibly consider adding
>   `building=entrance` nodes - this (I think) will cause Nominatim to
>   return a more specific location rather than the centroid of the
>   building/airport polygon.
>   Geocoding is a related, but separate problem.  There are a bunch of
>   tags in OSM that are used by Nominatim, including `building=entrace`
>   on nodes, `addr:*` on ways/nodes/relations/areas, etc.  Determining
>   the best coordinate to return to the user is itself a difficult
>   problem.

I have done a lot of geocoding and i have several OSRM instances running
for different purposes - mostly infrastructure calculation - I am pretty
shure i know the seperate issues well.

The point is thats an unsolved problem. And its a day to day problem
for me as when i do calculate telecoms cable distances i want the
nearest point on a public road - not the backyard - same problem.

So yes - Geocoding helps me to find a POI, Address whatever. OSRM is
responsible to bring me there. 

Something in the middle is missing. OSRM/Mapzen/Graphhopper solves halve
of the problem by "snapping to road" which is the brute force
response to this problem - or - to solve the problem of finding the
nearest reachable point on the route graph. Reality is more complex.

Either routing engines need to get more intelligent or more dumb by
reducing the snap size drastically. Then we would need some "middleware"
which has its own dataset which might be returned by a geocoder
as extended attributes.

An example response would be:

	I know where "London Zoo" is - Its at lat,lon. If you want to go there
	by car use lat2,lon2 - if you want to go there by foot go to lat3,lon3."

That could be extended for multiple types of transports, infrastructure
connect points whatever.

In my primary mapping area we decided to avoid "area style POIs"
whenever possible for exactly this reason. Building a centroid on
an area and routing to the nearest point on the routeable network
is most of the time not the right answer. You dont want to end up
in the middle of a multi-acre campsite - you want to be sent to the

Florian Lohoff                                                 f at zz.de
             UTF-8 Test: The 🐈 ran after a 🐁, but the 🐁 ran away
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: Digital signature
URL: <http://lists.openstreetmap.org/pipermail/osrm-talk/attachments/20160817/7d99ac61/attachment.sig>

More information about the OSRM-talk mailing list