From 30362cfc0c98aa15cbfca89af5db414b3ae880c4 Mon Sep 17 00:00:00 2001 From: Emil Tin Date: Mon, 18 Aug 2014 15:38:07 +0200 Subject: [PATCH] update lua interface to speed and mode --- DataStructures/EdgeBasedNode.h | 8 +-- DataStructures/PhantomNodes.h | 8 +-- DataStructures/StaticRTree.h | 4 +- Descriptors/DescriptionFactory.cpp | 4 +- Extractor/ExtractionWay.h | 22 ++++---- Extractor/ExtractorCallbacks.cpp | 22 ++++---- Extractor/ScriptingEnvironment.cpp | 4 +- RoutingAlgorithms/BasicRoutingInterface.h | 2 +- profiles/bicycle.lua | 68 +++++++++++------------ profiles/car.lua | 20 +++---- profiles/examples/postgis.lua | 4 +- profiles/foot.lua | 14 ++--- profiles/lib/maxspeed.lua | 4 +- profiles/testbot.lua | 16 +++--- 14 files changed, 100 insertions(+), 100 deletions(-) mode change 100644 => 100755 profiles/car.lua diff --git a/DataStructures/EdgeBasedNode.h b/DataStructures/EdgeBasedNode.h index 8b644535a..c88a266d1 100644 --- a/DataStructures/EdgeBasedNode.h +++ b/DataStructures/EdgeBasedNode.h @@ -27,7 +27,7 @@ struct EdgeBasedNode packed_geometry_id(SPECIAL_EDGEID), fwd_segment_position( std::numeric_limits::max() ), is_in_tiny_cc(false), - travel_mode(TRAVEL_MODE_INACCESSIBLE), + forward_travel_mode(TRAVEL_MODE_INACCESSIBLE), backward_travel_mode(TRAVEL_MODE_INACCESSIBLE) { } @@ -44,7 +44,7 @@ struct EdgeBasedNode unsigned packed_geometry_id, unsigned short fwd_segment_position, bool belongs_to_tiny_component, - TravelMode travel_mode , + TravelMode forward_travel_mode, TravelMode backward_travel_mode ) : forward_edge_based_node_id(forward_edge_based_node_id), @@ -59,7 +59,7 @@ struct EdgeBasedNode packed_geometry_id(packed_geometry_id), fwd_segment_position(fwd_segment_position), is_in_tiny_cc(belongs_to_tiny_component), - travel_mode(travel_mode), + forward_travel_mode(forward_travel_mode), backward_travel_mode(backward_travel_mode) { BOOST_ASSERT((forward_edge_based_node_id != SPECIAL_NODEID) || @@ -92,7 +92,7 @@ struct EdgeBasedNode unsigned packed_geometry_id; // if set, then the edge represents a packed geometry unsigned short fwd_segment_position; // segment id in a compressed geometry bool is_in_tiny_cc; - TravelMode travel_mode : 4; + TravelMode forward_travel_mode : 4; TravelMode backward_travel_mode : 4; }; diff --git a/DataStructures/PhantomNodes.h b/DataStructures/PhantomNodes.h index 8c662cd09..ee9e66d5f 100644 --- a/DataStructures/PhantomNodes.h +++ b/DataStructures/PhantomNodes.h @@ -41,7 +41,7 @@ struct PhantomNode int forward_weight, int reverse_weight, int forward_offset, int reverse_offset, unsigned packed_geometry_id, FixedPointCoordinate &location, unsigned short fwd_segment_position, - TravelMode travel_mode, TravelMode backward_travel_mode) : + TravelMode forward_travel_mode, TravelMode backward_travel_mode) : forward_node_id(forward_node_id), reverse_node_id(reverse_node_id), name_id(name_id), @@ -52,7 +52,7 @@ struct PhantomNode packed_geometry_id(packed_geometry_id), location(location), fwd_segment_position(fwd_segment_position), - travel_mode(travel_mode), + forward_travel_mode(forward_travel_mode), backward_travel_mode(backward_travel_mode) { } @@ -66,7 +66,7 @@ struct PhantomNode reverse_offset(0), packed_geometry_id(SPECIAL_EDGEID), fwd_segment_position(0), - travel_mode(TRAVEL_MODE_INACCESSIBLE), + forward_travel_mode(TRAVEL_MODE_INACCESSIBLE), backward_travel_mode(TRAVEL_MODE_INACCESSIBLE) { } @@ -80,7 +80,7 @@ struct PhantomNode unsigned packed_geometry_id; FixedPointCoordinate location; unsigned short fwd_segment_position; - TravelMode travel_mode : 4; + TravelMode forward_travel_mode : 4; TravelMode backward_travel_mode : 4; int GetForwardWeightPlusOffset() const diff --git a/DataStructures/StaticRTree.h b/DataStructures/StaticRTree.h index 0c42ecfeb..05e560450 100644 --- a/DataStructures/StaticRTree.h +++ b/DataStructures/StaticRTree.h @@ -802,7 +802,7 @@ class StaticRTree current_segment.packed_geometry_id, foot_point_coordinate_on_segment, current_segment.fwd_segment_position, - current_segment.travel_mode, + current_segment.forward_travel_mode, current_segment.backward_travel_mode); // Hack to fix rounding errors and wandering via nodes. @@ -1080,7 +1080,7 @@ class StaticRTree current_edge.packed_geometry_id, nearest, current_edge.fwd_segment_position, - current_edge.travel_mode, + current_edge.forward_travel_mode, current_edge.backward_travel_mode}; nearest_edge = current_edge; } diff --git a/Descriptors/DescriptionFactory.cpp b/Descriptors/DescriptionFactory.cpp index 4d134e576..56d94b831 100644 --- a/Descriptors/DescriptionFactory.cpp +++ b/Descriptors/DescriptionFactory.cpp @@ -46,7 +46,7 @@ void DescriptionFactory::SetStartSegment(const PhantomNode &source, const bool t const EdgeWeight segment_duration = (traversed_in_reverse ? source.reverse_weight : source.forward_weight); const TravelMode travel_mode = - (traversed_in_reverse ? source.backward_travel_mode : source.travel_mode); + (traversed_in_reverse ? source.backward_travel_mode : source.forward_travel_mode); AppendSegment(source.location, PathData(0, source.name_id, TurnInstruction::HeadOn, segment_duration, travel_mode)); BOOST_ASSERT(path_description.back().duration == segment_duration); @@ -60,7 +60,7 @@ void DescriptionFactory::SetEndSegment(const PhantomNode &target, const EdgeWeight segment_duration = (traversed_in_reverse ? target.reverse_weight : target.forward_weight); const TravelMode travel_mode = - (traversed_in_reverse ? target.backward_travel_mode : target.travel_mode); + (traversed_in_reverse ? target.backward_travel_mode : target.forward_travel_mode); path_description.emplace_back(target.location, target.name_id, segment_duration, diff --git a/Extractor/ExtractionWay.h b/Extractor/ExtractionWay.h index cd5086fce..703e22e46 100644 --- a/Extractor/ExtractionWay.h +++ b/Extractor/ExtractionWay.h @@ -45,7 +45,7 @@ struct ExtractionWay nameID = INVALID_NAMEID; path.clear(); keyVals.Clear(); - speed = -1; + forward_speed = -1; backward_speed = -1; duration = -1; type = -1; @@ -53,7 +53,7 @@ struct ExtractionWay roundabout = false; isAccessRestricted = false; ignoreInGrid = false; - travel_mode = TRAVEL_MODE_DEFAULT; + forward_travel_mode = TRAVEL_MODE_DEFAULT; backward_travel_mode = TRAVEL_MODE_DEFAULT; } @@ -67,28 +67,28 @@ struct ExtractionWay { if (Directions::oneway == m ) { - travel_mode = TRAVEL_MODE_DEFAULT; + forward_travel_mode = TRAVEL_MODE_DEFAULT; backward_travel_mode = TRAVEL_MODE_INACCESSIBLE; } else if (Directions::opposite == m ) { - travel_mode = TRAVEL_MODE_INACCESSIBLE; + forward_travel_mode = TRAVEL_MODE_INACCESSIBLE; backward_travel_mode = TRAVEL_MODE_DEFAULT; } else if (Directions::bidirectional == m ) { - travel_mode = TRAVEL_MODE_DEFAULT; + forward_travel_mode = TRAVEL_MODE_DEFAULT; backward_travel_mode = TRAVEL_MODE_DEFAULT; } } inline const Directions get_direction() { - if (TRAVEL_MODE_INACCESSIBLE != travel_mode && TRAVEL_MODE_INACCESSIBLE != backward_travel_mode ) + if (TRAVEL_MODE_INACCESSIBLE != forward_travel_mode && TRAVEL_MODE_INACCESSIBLE != backward_travel_mode ) { return Directions::bidirectional; } - else if (TRAVEL_MODE_INACCESSIBLE != travel_mode ) + else if (TRAVEL_MODE_INACCESSIBLE != forward_travel_mode ) { return Directions::oneway; } @@ -102,14 +102,14 @@ struct ExtractionWay } } - inline void set_mode(const TravelMode m) { travel_mode = m; } - inline const TravelMode get_mode() { return travel_mode; } + inline void set_forward_mode(const TravelMode m) { forward_travel_mode = m; } + inline const TravelMode get_forward_mode() { return forward_travel_mode; } inline void set_backward_mode(const TravelMode m) { backward_travel_mode = m; } inline const TravelMode get_backward_mode() { return backward_travel_mode; } unsigned id; unsigned nameID; - double speed; + double forward_speed; double backward_speed; double duration; std::string name; @@ -120,7 +120,7 @@ struct ExtractionWay bool ignoreInGrid; std::vector path; HashTable keyVals; - TravelMode travel_mode : 4; + TravelMode forward_travel_mode : 4; TravelMode backward_travel_mode : 4; }; diff --git a/Extractor/ExtractorCallbacks.cpp b/Extractor/ExtractorCallbacks.cpp index e0a4634db..393d5b90b 100644 --- a/Extractor/ExtractorCallbacks.cpp +++ b/Extractor/ExtractorCallbacks.cpp @@ -63,7 +63,7 @@ bool ExtractorCallbacks::ProcessRestriction(const InputRestrictionContainer &res /** warning: caller needs to take care of synchronization! */ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way) { - if ((0 >= parsed_way.speed) && (0 >= parsed_way.duration)) + if ((0 >= parsed_way.forward_speed) && (0 >= parsed_way.duration)) { // Only true if the way is specified by the speed profile return; } @@ -84,10 +84,10 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way) { // TODO: iterate all way segments and set duration corresponding to the length of each // segment - parsed_way.speed = parsed_way.duration / (parsed_way.path.size() - 1); + parsed_way.forward_speed = parsed_way.duration / (parsed_way.path.size() - 1); } - if (std::numeric_limits::epsilon() >= std::abs(-1. - parsed_way.speed)) + if (std::numeric_limits::epsilon() >= std::abs(-1. - parsed_way.forward_speed)) { SimpleLogger().Write(logDEBUG) << "found way with bogus speed, id: " << parsed_way.id; return; @@ -106,20 +106,20 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way) parsed_way.nameID = string_map_iterator->second; } - if (TRAVEL_MODE_INACCESSIBLE == parsed_way.travel_mode) + if (TRAVEL_MODE_INACCESSIBLE == parsed_way.forward_travel_mode) { std::reverse(parsed_way.path.begin(), parsed_way.path.end()); - parsed_way.travel_mode = parsed_way.backward_travel_mode; + parsed_way.forward_travel_mode = parsed_way.backward_travel_mode; parsed_way.backward_travel_mode = TRAVEL_MODE_INACCESSIBLE; } const bool split_edge = - (parsed_way.speed>0) && (TRAVEL_MODE_INACCESSIBLE != parsed_way.travel_mode) && + (parsed_way.forward_speed>0) && (TRAVEL_MODE_INACCESSIBLE != parsed_way.forward_travel_mode) && (parsed_way.backward_speed>0) && (TRAVEL_MODE_INACCESSIBLE != parsed_way.backward_travel_mode) && - ((parsed_way.speed != parsed_way.backward_speed) || - (parsed_way.travel_mode != parsed_way.backward_travel_mode)); + ((parsed_way.forward_speed != parsed_way.backward_speed) || + (parsed_way.forward_travel_mode != parsed_way.backward_travel_mode)); - BOOST_ASSERT(parsed_way.travel_mode>0); + BOOST_ASSERT(parsed_way.forward_travel_mode>0); for (unsigned n = 0; n < (parsed_way.path.size() - 1); ++n) { external_memory.all_edges_list.push_back(InternalExtractorEdge( @@ -128,13 +128,13 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way) parsed_way.type, ((split_edge || TRAVEL_MODE_INACCESSIBLE == parsed_way.backward_travel_mode) ? ExtractionWay::oneway : ExtractionWay::bidirectional), - parsed_way.speed, + parsed_way.forward_speed, parsed_way.nameID, parsed_way.roundabout, parsed_way.ignoreInGrid, (0 < parsed_way.duration), parsed_way.isAccessRestricted, - parsed_way.travel_mode, + parsed_way.forward_travel_mode, split_edge)); external_memory.used_node_id_list.push_back(parsed_way.path[n]); } diff --git a/Extractor/ScriptingEnvironment.cpp b/Extractor/ScriptingEnvironment.cpp index 96a8e606f..ed2075f98 100644 --- a/Extractor/ScriptingEnvironment.cpp +++ b/Extractor/ScriptingEnvironment.cpp @@ -76,7 +76,7 @@ void ScriptingEnvironment::initLuaState(lua_State* lua_state) // .def(luabind::constructor<>()) .def_readonly("id", &ExtractionWay::id) .def_readwrite("name", &ExtractionWay::name) - .def_readwrite("speed", &ExtractionWay::speed) + .def_readwrite("forward_speed", &ExtractionWay::forward_speed) .def_readwrite("backward_speed", &ExtractionWay::backward_speed) .def_readwrite("duration", &ExtractionWay::duration) .def_readwrite("type", &ExtractionWay::type) @@ -86,7 +86,7 @@ void ScriptingEnvironment::initLuaState(lua_State* lua_state) .def_readwrite("ignore_in_grid", &ExtractionWay::ignoreInGrid) .def_readwrite("tags", &ExtractionWay::keyVals) .property("direction", &ExtractionWay::get_direction, &ExtractionWay::set_direction) - .property("mode", &ExtractionWay::get_mode, &ExtractionWay::set_mode) + .property("forward_mode", &ExtractionWay::get_forward_mode, &ExtractionWay::set_forward_mode) .property("backward_mode", &ExtractionWay::get_backward_mode, &ExtractionWay::set_backward_mode) .enum_("constants")[ luabind::value("notSure", 0), diff --git a/RoutingAlgorithms/BasicRoutingInterface.h b/RoutingAlgorithms/BasicRoutingInterface.h index 8e2eedafc..cd00545df 100644 --- a/RoutingAlgorithms/BasicRoutingInterface.h +++ b/RoutingAlgorithms/BasicRoutingInterface.h @@ -306,7 +306,7 @@ template class BasicRoutingInterface phantom_node_pair.target_phantom.name_id, TurnInstruction::NoTurn, 0, - phantom_node_pair.target_phantom.travel_mode}); + phantom_node_pair.target_phantom.forward_travel_mode}); } } diff --git a/profiles/bicycle.lua b/profiles/bicycle.lua index 37777f9ec..09a234b5c 100644 --- a/profiles/bicycle.lua +++ b/profiles/bicycle.lua @@ -223,42 +223,42 @@ function way_function (way) -- speed if route_speeds[route] then -- ferries (doesn't cover routes tagged using relations) - way.mode = mode_ferry + way.forward_mode = mode_ferry way.backward_mode = mode_ferry way.ignore_in_grid = true if durationIsValid(duration) then way.duration = math.max( 1, parseDuration(duration) ) else - way.speed = route_speeds[route] + way.forward_speed = route_speeds[route] way.backward_speed = route_speeds[route] end elseif railway and platform_speeds[railway] then -- railway platforms (old tagging scheme) - way.speed = platform_speeds[railway] + way.forward_speed = platform_speeds[railway] way.backward_speed = platform_speeds[railway] elseif platform_speeds[public_transport] then -- public_transport platforms (new tagging platform) - way.speed = platform_speeds[public_transport] + way.forward_speed = platform_speeds[public_transport] way.backward_speed = platform_speeds[public_transport] elseif railway and railway_speeds[railway] then - way.mode = mode_train + way.forward_mode = mode_train way.backward_mode = mode_train -- railways if access and access_tag_whitelist[access] then - way.speed = railway_speeds[railway] + way.forward_speed = railway_speeds[railway] way.backward_speed = railway_speeds[railway] end elseif amenity and amenity_speeds[amenity] then -- parking areas - way.speed = amenity_speeds[amenity] + way.forward_speed = amenity_speeds[amenity] way.backward_speed = amenity_speeds[amenity] elseif bicycle_speeds[highway] then -- regular ways - way.speed = bicycle_speeds[highway] + way.forward_speed = bicycle_speeds[highway] way.backward_speed = bicycle_speeds[highway] elseif access and access_tag_whitelist[access] then -- unknown way, but valid access tag - way.speed = default_speed + way.forward_speed = default_speed way.backward_speed = default_speed else -- biking not allowed, maybe we can push our bike? @@ -266,25 +266,25 @@ function way_function (way) if foot ~= 'no' and junction ~= "roundabout" then if pedestrian_speeds[highway] then -- pedestrian-only ways and areas - way.speed = pedestrian_speeds[highway] - way.mode = mode_pushing + way.forward_speed = pedestrian_speeds[highway] + way.forward_mode = mode_pushing way.backward_mode = mode_pushing elseif man_made and man_made_speeds[man_made] then -- man made structures - way.speed = man_made_speeds[man_made] - way.mode = mode_pushing + way.forward_speed = man_made_speeds[man_made] + way.forward_mode = mode_pushing way.backward_mode = mode_pushing elseif foot == 'yes' then - way.speed = walking_speed - way.mode = mode_pushing + way.forward_speed = walking_speed + way.forward_mode = mode_pushing way.backward_mode = mode_pushing elseif foot_forward == 'yes' then - way.speed = walking_speed - way.mode = mode_pushing + way.forward_speed = walking_speed + way.forward_mode = mode_pushing way.backward_mode = 0 elseif foot_backward == 'yes' then - way.speed = walking_speed - way.mode = 0 + way.forward_speed = walking_speed + way.forward_mode = 0 way.backward_mode = mode_pushing end end @@ -301,28 +301,28 @@ function way_function (way) elseif onewayClass == "no" or onewayClass == "0" or onewayClass == "false" then -- prevent implied oneway elseif onewayClass == "-1" then - way.mode = 0 + way.forward_mode = 0 elseif oneway == "no" or oneway == "0" or oneway == "false" then -- prevent implied oneway elseif cycleway and string.find(cycleway, "opposite") == 1 then if impliedOneway then - way.mode = 0 + way.forward_mode = 0 way.backward_mode = mode_normal end elseif cycleway_left and cycleway_tags[cycleway_left] and cycleway_right and cycleway_tags[cycleway_right] then -- prevent implied elseif cycleway_left and cycleway_tags[cycleway_left] then if impliedOneway then - way.mode = 0 + way.forward_mode = 0 way.backward_mode = mode_normal end elseif cycleway_right and cycleway_tags[cycleway_right] then if impliedOneway then - way.mode = mode_normal + way.forward_mode = mode_normal way.backward_mode = 0 end elseif oneway == "-1" then - way.mode = 0 + way.forward_mode = 0 elseif oneway == "yes" or oneway == "1" or oneway == "true" or impliedOneway then way.backward_mode = 0 end @@ -333,27 +333,27 @@ function way_function (way) if way.backward_mode == 0 then way.backward_speed = walking_speed way.backward_mode = mode_pushing - elseif way.mode == 0 then - way.speed = walking_speed - way.mode = mode_pushing + elseif way.forward_mode == 0 then + way.forward_speed = walking_speed + way.forward_mode = mode_pushing end end end -- cycleways if cycleway and cycleway_tags[cycleway] then - way.speed = bicycle_speeds["cycleway"] + way.forward_speed = bicycle_speeds["cycleway"] elseif cycleway_left and cycleway_tags[cycleway_left] then - way.speed = bicycle_speeds["cycleway"] + way.forward_speed = bicycle_speeds["cycleway"] elseif cycleway_right and cycleway_tags[cycleway_right] then - way.speed = bicycle_speeds["cycleway"] + way.forward_speed = bicycle_speeds["cycleway"] end -- dismount if bicycle == "dismount" then - way.mode = mode_pushing + way.forward_mode = mode_pushing way.backward_mode = mode_pushing - way.speed = walking_speed + way.forward_speed = walking_speed way.backward_speed = walking_speed end @@ -361,8 +361,8 @@ function way_function (way) if surface then surface_speed = surface_speeds[surface] if surface_speed then - if way.speed > 0 then - way.speed = surface_speed + if way.forward_speed > 0 then + way.forward_speed = surface_speed end if way.backward_speed > 0 then way.backward_speed = surface_speed diff --git a/profiles/car.lua b/profiles/car.lua old mode 100644 new mode 100755 index 8f8d1bcdd..f04d2667b --- a/profiles/car.lua +++ b/profiles/car.lua @@ -170,7 +170,7 @@ function way_function (way) way.duration = max( parseDuration(duration), 1 ); end way.direction = Way.bidirectional - way.speed = route_speed + way.forward_speed = route_speed end -- leave early of this way is not accessible @@ -178,30 +178,30 @@ function way_function (way) return end - if way.speed == -1 then + if way.forward_speed == -1 then local highway_speed = speed_profile[highway] local max_speed = parse_maxspeed( way.tags:Find("maxspeed") ) -- Set the avg speed on the way if it is accessible by road class if highway_speed then if max_speed > highway_speed then - way.speed = max_speed + way.forward_speed = max_speed -- max_speed = math.huge else - way.speed = highway_speed + way.forward_speed = highway_speed end else -- Set the avg speed on ways that are marked accessible if access_tag_whitelist[access] then - way.speed = speed_profile["default"] + way.forward_speed = speed_profile["default"] end end if 0 == max_speed then max_speed = math.huge end - way.speed = min(way.speed, max_speed) + way.forward_speed = min(way.forward_speed, max_speed) end - if -1 == way.speed then + if -1 == way.forward_speed then return end @@ -256,9 +256,9 @@ function way_function (way) local maxspeed_backward = parse_maxspeed(way.tags:Find( "maxspeed:backward")) if maxspeed_forward > 0 then if Way.bidirectional == way.direction then - way.backward_speed = way.speed + way.backward_speed = way.forward_speed end - way.speed = maxspeed_forward + way.forward_speed = maxspeed_forward end if maxspeed_backward > 0 then way.backward_speed = maxspeed_backward @@ -271,7 +271,7 @@ function way_function (way) way.type = 1 -- scale speeds to get better avg driving times - way.speed = way.speed * speed_reduction + way.forward_speed = way.forward_speed * speed_reduction if maxspeed_backward > 0 then way.backward_speed = way.backward_speed*speed_reduction end diff --git a/profiles/examples/postgis.lua b/profiles/examples/postgis.lua index b101a2792..6e32e4c7f 100644 --- a/profiles/examples/postgis.lua +++ b/profiles/examples/postgis.lua @@ -65,11 +65,11 @@ function way_function (way) local cursor = assert( sql_con:execute(sql_query) ) -- execute querty local row = cursor:fetch( {}, "a" ) -- fetch first (and only) row - way.speed = 20.0 -- default speed + way.forward_speed = 20.0 -- default speed if row then local val = tonumber(row.val) -- read 'val' from row if val > 10 then - way.speed = way.speed / math.log10( val ) -- reduce speed by amount of industry close by + way.forward_speed = way.forward_speed / math.log10( val ) -- reduce speed by amount of industry close by end end cursor:close() -- done with this query diff --git a/profiles/foot.lua b/profiles/foot.lua index ae0dd6083..96e72ee90 100644 --- a/profiles/foot.lua +++ b/profiles/foot.lua @@ -161,23 +161,23 @@ function way_function (way) if durationIsValid(duration) then way.duration = math.max( 1, parseDuration(duration) ) else - way.speed = route_speeds[route] + way.forward_speed = route_speeds[route] end elseif railway and platform_speeds[railway] then -- railway platforms (old tagging scheme) - way.speed = platform_speeds[railway] + way.forward_speed = platform_speeds[railway] elseif platform_speeds[public_transport] then -- public_transport platforms (new tagging platform) - way.speed = platform_speeds[public_transport] + way.forward_speed = platform_speeds[public_transport] elseif amenity and amenity_speeds[amenity] then -- parking areas - way.speed = amenity_speeds[amenity] + way.forward_speed = amenity_speeds[amenity] elseif speeds[highway] then -- regular ways - way.speed = speeds[highway] + way.forward_speed = speeds[highway] elseif access and access_tag_whitelist[access] then -- unknown way, but valid access tag - way.speed = walking_speed + way.forward_speed = walking_speed end -- oneway @@ -195,7 +195,7 @@ function way_function (way) if surface then surface_speed = surface_speeds[surface] if surface_speed then - way.speed = math.min(way.speed, surface_speed) + way.forward_speed = math.min(way.forward_speed, surface_speed) way.backward_speed = math.min(way.backward_speed, surface_speed) end end diff --git a/profiles/lib/maxspeed.lua b/profiles/lib/maxspeed.lua index a99399b1d..aca344a79 100644 --- a/profiles/lib/maxspeed.lua +++ b/profiles/lib/maxspeed.lua @@ -4,9 +4,9 @@ module "MaxSpeed" function limit(way,max,maxf,maxb) if maxf and maxf>0 then - way.speed = math.min(way.speed, maxf) + way.forward_speed = math.min(way.forward_speed, maxf) elseif max and max>0 then - way.speed = math.min(way.speed, max) + way.forward_speed = math.min(way.forward_speed, max) end if maxb and maxb>0 then diff --git a/profiles/testbot.lua b/profiles/testbot.lua index 2e83c8d69..640c81651 100644 --- a/profiles/testbot.lua +++ b/profiles/testbot.lua @@ -70,22 +70,22 @@ function way_function (way) if route ~= nil and durationIsValid(duration) then way.duration = math.max( 1, parseDuration(duration) ) - way.mode = 2 - way.backward_mode = 2 + way.forward_mode = 2 + way.backward_mode = 2 else local speed_forw = speed_profile[highway] or speed_profile['default'] local speed_back = speed_forw if highway == "river" then local temp_speed = speed_forw; - way.mode = 3 - way.backward_mode = 4 + way.forward_mode = 3 + way.backward_mode = 4 speed_forw = temp_speed*1.5 speed_back = temp_speed/1.5 elseif highway == "steps" then - way.mode = 5 + way.forward_mode = 5 way.backward_mode = 6 - end + end if maxspeed_forward ~= nil and maxspeed_forward > 0 then speed_forw = maxspeed_forward @@ -103,14 +103,14 @@ function way_function (way) end end - way.speed = speed_forw + way.forward_speed = speed_forw way.backward_speed = speed_back end if oneway == "no" or oneway == "0" or oneway == "false" then -- nothing to do elseif oneway == "-1" then - way.mode = 0 + way.forward_mode = 0 elseif oneway == "yes" or oneway == "1" or oneway == "true" or junction == "roundabout" then way.backward_mode = 0 end