add support for junction=circular, allowing named circular junctions to be treated as rotaries
This commit is contained in:
@@ -45,6 +45,7 @@ struct ExtractionWay
|
||||
backward_speed = -1;
|
||||
duration = -1;
|
||||
roundabout = false;
|
||||
circular = false;
|
||||
is_startpoint = true;
|
||||
is_access_restricted = false;
|
||||
name.clear();
|
||||
@@ -89,6 +90,7 @@ struct ExtractionWay
|
||||
std::string turn_lanes_forward;
|
||||
std::string turn_lanes_backward;
|
||||
bool roundabout;
|
||||
bool circular;
|
||||
bool is_access_restricted;
|
||||
bool is_startpoint;
|
||||
TravelMode forward_travel_mode : 4;
|
||||
|
||||
@@ -43,11 +43,12 @@ struct InternalExtractorEdge
|
||||
MIN_OSM_NODEID,
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false, // forward
|
||||
false, // backward
|
||||
false, // roundabout
|
||||
false, // circular
|
||||
false, // access restricted
|
||||
true, // can be startpoint
|
||||
TRAVEL_MODE_INACCESSIBLE,
|
||||
false,
|
||||
guidance::TurnLaneType::empty,
|
||||
@@ -62,6 +63,7 @@ struct InternalExtractorEdge
|
||||
bool forward,
|
||||
bool backward,
|
||||
bool roundabout,
|
||||
bool circular,
|
||||
bool access_restricted,
|
||||
bool startpoint,
|
||||
TravelMode travel_mode,
|
||||
@@ -75,6 +77,7 @@ struct InternalExtractorEdge
|
||||
forward,
|
||||
backward,
|
||||
roundabout,
|
||||
circular,
|
||||
access_restricted,
|
||||
startpoint,
|
||||
travel_mode,
|
||||
@@ -99,11 +102,12 @@ struct InternalExtractorEdge
|
||||
MIN_OSM_NODEID,
|
||||
0,
|
||||
WeightData(),
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false, // forward
|
||||
false, // backward
|
||||
false, // roundabout
|
||||
false, // circular
|
||||
false, // access restricted
|
||||
true, // can be startpoint
|
||||
TRAVEL_MODE_INACCESSIBLE,
|
||||
false,
|
||||
INVALID_LANE_DESCRIPTIONID,
|
||||
@@ -115,11 +119,12 @@ struct InternalExtractorEdge
|
||||
MAX_OSM_NODEID,
|
||||
SPECIAL_NODEID,
|
||||
WeightData(),
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false, // forward
|
||||
false, // backward
|
||||
false, // roundabout
|
||||
false, // circular
|
||||
false, // access restricted
|
||||
true, // can be startpoint
|
||||
TRAVEL_MODE_INACCESSIBLE,
|
||||
false,
|
||||
INVALID_LANE_DESCRIPTIONID,
|
||||
|
||||
@@ -22,6 +22,7 @@ struct NodeBasedEdge
|
||||
bool forward,
|
||||
bool backward,
|
||||
bool roundabout,
|
||||
bool circular,
|
||||
bool access_restricted,
|
||||
bool startpoint,
|
||||
TravelMode travel_mode,
|
||||
@@ -38,6 +39,7 @@ struct NodeBasedEdge
|
||||
bool forward : 1;
|
||||
bool backward : 1;
|
||||
bool roundabout : 1;
|
||||
bool circular : 1;
|
||||
bool access_restricted : 1;
|
||||
bool startpoint : 1;
|
||||
bool is_split : 1;
|
||||
@@ -55,6 +57,7 @@ struct NodeBasedEdgeWithOSM : NodeBasedEdge
|
||||
bool forward,
|
||||
bool backward,
|
||||
bool roundabout,
|
||||
bool circular,
|
||||
bool access_restricted,
|
||||
bool startpoint,
|
||||
TravelMode travel_mode,
|
||||
@@ -70,7 +73,7 @@ struct NodeBasedEdgeWithOSM : NodeBasedEdge
|
||||
|
||||
inline NodeBasedEdge::NodeBasedEdge()
|
||||
: source(SPECIAL_NODEID), target(SPECIAL_NODEID), name_id(0), weight(0), forward(false),
|
||||
backward(false), roundabout(false), access_restricted(false), startpoint(true),
|
||||
backward(false), roundabout(false), circular(false), access_restricted(false), startpoint(true),
|
||||
is_split(false), travel_mode(false), lane_description_id(INVALID_LANE_DESCRIPTIONID)
|
||||
{
|
||||
}
|
||||
@@ -82,6 +85,7 @@ inline NodeBasedEdge::NodeBasedEdge(NodeID source,
|
||||
bool forward,
|
||||
bool backward,
|
||||
bool roundabout,
|
||||
bool circular,
|
||||
bool access_restricted,
|
||||
bool startpoint,
|
||||
TravelMode travel_mode,
|
||||
@@ -89,7 +93,7 @@ inline NodeBasedEdge::NodeBasedEdge(NodeID source,
|
||||
const LaneDescriptionID lane_description_id,
|
||||
guidance::RoadClassification road_classification)
|
||||
: source(source), target(target), name_id(name_id), weight(weight), forward(forward),
|
||||
backward(backward), roundabout(roundabout), access_restricted(access_restricted),
|
||||
backward(backward), roundabout(roundabout), circular(circular), access_restricted(access_restricted),
|
||||
startpoint(startpoint), is_split(is_split), travel_mode(travel_mode),
|
||||
lane_description_id(lane_description_id), road_classification(std::move(road_classification))
|
||||
{
|
||||
@@ -119,6 +123,7 @@ inline NodeBasedEdgeWithOSM::NodeBasedEdgeWithOSM(OSMNodeID source,
|
||||
bool forward,
|
||||
bool backward,
|
||||
bool roundabout,
|
||||
bool circular,
|
||||
bool access_restricted,
|
||||
bool startpoint,
|
||||
TravelMode travel_mode,
|
||||
@@ -132,6 +137,7 @@ inline NodeBasedEdgeWithOSM::NodeBasedEdgeWithOSM(OSMNodeID source,
|
||||
forward,
|
||||
backward,
|
||||
roundabout,
|
||||
circular,
|
||||
access_restricted,
|
||||
startpoint,
|
||||
travel_mode,
|
||||
|
||||
Reference in New Issue
Block a user