You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the arrival of #77 (separate weight/duration), there are certain barrier nodes that we would like to un-block and penalize heavily instead of simply cutting. The primary example of this is the node tag barrier=toll_booth - we would like to heavily penalize the routing weight when passing this node type (to allow for "avoid tolls" routing), without needing to apply a duration penalty (i.e. many tolls are fast-moving without significant time cost).
The current node_function has the ability to set two flags on an ExtractionNode:
barrier - this means that the graph is cut at this point - crossing is not possible
traffic_lights - this means a time penalty is added here, and the graph is not compressed across this turn movement (this is to allow preserving of the traffic_light penalty when updating with traffic speed data later)
These properties are stored as a std::vector<bool>, which only needs 1 bit per node. The turn_function uses the has_traffic_light flag to determine whether to add a duration penalty to a turning movement.
We should add a new ExtractionNode property here called has_weight_penalty (or something similar). The turn_function can then use this to add a fixed weight penalty to any turn that traverses this type of node.
The text was updated successfully, but these errors were encountered:
With the arrival of #77 (separate weight/duration), there are certain barrier nodes that we would like to un-block and penalize heavily instead of simply cutting. The primary example of this is the node tag
barrier=toll_booth
- we would like to heavily penalize the routing weight when passing this node type (to allow for "avoid tolls" routing), without needing to apply a duration penalty (i.e. many tolls are fast-moving without significant time cost).The current
node_function
has the ability to set two flags on anExtractionNode
:barrier
- this means that the graph is cut at this point - crossing is not possibletraffic_lights
- this means a time penalty is added here, and the graph is not compressed across this turn movement (this is to allow preserving of the traffic_light penalty when updating with traffic speed data later)These properties are stored as a
std::vector<bool>
, which only needs 1 bit per node. Theturn_function
uses thehas_traffic_light
flag to determine whether to add aduration
penalty to a turning movement.We should add a new
ExtractionNode
property here calledhas_weight_penalty
(or something similar). Theturn_function
can then use this to add a fixed weight penalty to any turn that traverses this type of node.The text was updated successfully, but these errors were encountered: