Making the turn function more flexible (#4789)
* set and store highway and access classification for the turn function * expose highway turn classification and access turn classification and speed to the lua profile turn function * expose whether connection road at turn is incoming or outgoing * add lua tests for exposed information to turn function * update docs about attributes in process_turn * add turn_classification info to docs * adding warning if uturn and intersection dont match * handle u turns that do not turn into intersection[0] * split OSM link generation in an accessible coordinate function
This commit is contained in:
committed by
GitHub
parent
13bb997525
commit
61e06fcaba
@@ -346,7 +346,13 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
|
||||
[](ExtractionWay &way, bool flag) { way.backward_restricted = flag; }),
|
||||
"is_left_hand_driving",
|
||||
sol::property([](const ExtractionWay &way) { return way.is_left_hand_driving; },
|
||||
[](ExtractionWay &way, bool flag) { way.is_left_hand_driving = flag; }));
|
||||
[](ExtractionWay &way, bool flag) { way.is_left_hand_driving = flag; }),
|
||||
"highway_turn_classification",
|
||||
sol::property([](const ExtractionWay &way) { return way.highway_turn_classification; },
|
||||
[](ExtractionWay &way, int flag) { way.highway_turn_classification = flag; }),
|
||||
"access_turn_classification",
|
||||
sol::property([](const ExtractionWay &way) { return way.access_turn_classification; },
|
||||
[](ExtractionWay &way, int flag) { way.access_turn_classification = flag; }));
|
||||
|
||||
auto getTypedRefBySol = [](const sol::object &obj) -> ExtractionRelation::OsmIDTyped {
|
||||
if (obj.is<osmium::Way>())
|
||||
@@ -670,29 +676,82 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
|
||||
{
|
||||
case 4:
|
||||
{
|
||||
context.state.new_usertype<ExtractionTurn>("ExtractionTurn",
|
||||
"angle",
|
||||
&ExtractionTurn::angle,
|
||||
"number_of_roads",
|
||||
&ExtractionTurn::number_of_roads,
|
||||
"is_u_turn",
|
||||
&ExtractionTurn::is_u_turn,
|
||||
"has_traffic_light",
|
||||
&ExtractionTurn::has_traffic_light,
|
||||
"weight",
|
||||
&ExtractionTurn::weight,
|
||||
"duration",
|
||||
&ExtractionTurn::duration,
|
||||
"source_restricted",
|
||||
&ExtractionTurn::source_restricted,
|
||||
"target_restricted",
|
||||
&ExtractionTurn::target_restricted,
|
||||
"is_left_hand_driving",
|
||||
&ExtractionTurn::is_left_hand_driving,
|
||||
"source_mode",
|
||||
&ExtractionTurn::source_mode,
|
||||
"target_mode",
|
||||
&ExtractionTurn::target_mode);
|
||||
context.state.new_usertype<ExtractionTurnLeg>(
|
||||
"ExtractionTurnLeg",
|
||||
"is_restricted",
|
||||
&ExtractionTurnLeg::is_restricted,
|
||||
"is_motorway",
|
||||
&ExtractionTurnLeg::is_motorway,
|
||||
"is_link",
|
||||
&ExtractionTurnLeg::is_link,
|
||||
"number_of_lanes",
|
||||
&ExtractionTurnLeg::number_of_lanes,
|
||||
"highway_turn_classification",
|
||||
&ExtractionTurnLeg::highway_turn_classification,
|
||||
"access_turn_classification",
|
||||
&ExtractionTurnLeg::access_turn_classification,
|
||||
"speed",
|
||||
&ExtractionTurnLeg::speed,
|
||||
"is_incoming",
|
||||
&ExtractionTurnLeg::is_incoming,
|
||||
"is_outgoing",
|
||||
&ExtractionTurnLeg::is_outgoing);
|
||||
|
||||
context.state.new_usertype<ExtractionTurn>(
|
||||
"ExtractionTurn",
|
||||
"angle",
|
||||
&ExtractionTurn::angle,
|
||||
"number_of_roads",
|
||||
&ExtractionTurn::number_of_roads,
|
||||
"is_u_turn",
|
||||
&ExtractionTurn::is_u_turn,
|
||||
"has_traffic_light",
|
||||
&ExtractionTurn::has_traffic_light,
|
||||
"is_left_hand_driving",
|
||||
&ExtractionTurn::is_left_hand_driving,
|
||||
|
||||
"source_restricted",
|
||||
&ExtractionTurn::source_restricted,
|
||||
"source_mode",
|
||||
&ExtractionTurn::source_mode,
|
||||
"source_is_motorway",
|
||||
&ExtractionTurn::source_is_motorway,
|
||||
"source_is_link",
|
||||
&ExtractionTurn::source_is_link,
|
||||
"source_number_of_lanes",
|
||||
&ExtractionTurn::source_number_of_lanes,
|
||||
"source_highway_turn_classification",
|
||||
&ExtractionTurn::source_highway_turn_classification,
|
||||
"source_access_turn_classification",
|
||||
&ExtractionTurn::source_access_turn_classification,
|
||||
"source_speed",
|
||||
&ExtractionTurn::source_speed,
|
||||
|
||||
"target_restricted",
|
||||
&ExtractionTurn::target_restricted,
|
||||
"target_mode",
|
||||
&ExtractionTurn::target_mode,
|
||||
"target_is_motorway",
|
||||
&ExtractionTurn::target_is_motorway,
|
||||
"target_is_link",
|
||||
&ExtractionTurn::target_is_link,
|
||||
"target_number_of_lanes",
|
||||
&ExtractionTurn::target_number_of_lanes,
|
||||
"target_highway_turn_classification",
|
||||
&ExtractionTurn::target_highway_turn_classification,
|
||||
"target_access_turn_classification",
|
||||
&ExtractionTurn::target_access_turn_classification,
|
||||
"target_speed",
|
||||
&ExtractionTurn::target_speed,
|
||||
|
||||
"roads_on_the_right",
|
||||
&ExtractionTurn::roads_on_the_right,
|
||||
"roads_on_the_left",
|
||||
&ExtractionTurn::roads_on_the_left,
|
||||
"weight",
|
||||
&ExtractionTurn::weight,
|
||||
"duration",
|
||||
&ExtractionTurn::duration);
|
||||
initV2Context();
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user