[OSRM-talk] Per-Direction Node Restrictions

Daniel Hofmann hofmann at mapbox.com
Wed Oct 5 21:18:15 UTC 2016


I just remembered your issue while looking at road priorities: priority
roads, give way, stop signs:

- https://github.com/Project-OSRM/osrm-backend/issues/3003
- https://github.com/Project-OSRM/osrm-backend/issues/2652

>From reading your profile pseudo code it should roughly be the same!

I started working on this in
https://github.com/Project-OSRM/osrm-backend/pull/3009 but it won't be a
quick change in the profiles, for sure.

Cheers,
Daniel J H

On Tue, Sep 27, 2016 at 4:29 PM, Spencer Gardner <spencergardner at gmail.com>
wrote:

> 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-OSR
>> M/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
>     end
>
>     if entering_highway == "residential" and crossing_highway == "primary"
> and not traffic_lights then:
>         crossing_penalty = some_large_number
>
> _______________________________________________
> OSRM-talk mailing list
> OSRM-talk at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/osrm-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/osrm-talk/attachments/20161005/587c2991/attachment.html>


More information about the OSRM-talk mailing list