On Tue, Sep 27, 2016 at 5:11 AM, Daniel Hofmann 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
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@openstreetmap.org
https://lists.openstreetmap.org/listinfo/osrm-talk