[OSRM-talk] Per-Direction Node Restrictions

Spencer Gardner spencergardner at gmail.com
Tue Sep 27 14:29:10 UTC 2016

On Tue, Sep 27, 2016 at 5:11 AM, Daniel Hofmann <hofmann at mapbox.com> wrote:

> When you say "should be avoided" you mean completely discarding a way
> going over a specific node in a single direction?
> In that case, we support turn restrictions in the form of
> `fromWay,viaNode,toWay` you could try.
> As in: `no_turn, fromResidential, viaHighwayNode, toResidential`
> (Relevant: via-way restrictions: https://github.com/Project-
> OSRM/osrm-backend/issues/2681)
> Cheers,
> Daniel J H
I had considered turn restrictions, but I was hoping for something a little
more generalizable so that I don't have to identify specific nodes and ways
in the config. For example, I'd like to tell the router to avoid a node
representing the intersection of a residential way and a primary way IF the
route is using the residential way. But I'd like to avoid having to
identify all such instances via turn restrictions.

I could imagine something like the following pseudo code:

function crossing_penalty(entering_way, crossing_way, node)
    local entering_highway = way:get_value_by_key("highway")
    local crossing_highway = way:get_value_by_key("highway")
    -- get traffic signals
    local tag = node:get_value_by_key("highway")
    if tag and "traffic_signals" == tag then
        traffic_lights = true

    if entering_highway == "residential" and crossing_highway == "primary"
and not traffic_lights then:
        crossing_penalty = some_large_number
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/osrm-talk/attachments/20160927/2f7b676d/attachment.html>

More information about the OSRM-talk mailing list