From c7592276f73dc2b99b32ea1437ae4b4308c49b6d Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Thu, 14 Aug 2025 21:31:15 -0300 Subject: [PATCH] [classifier] Added highway=ladder to the routing and other checkers. Signed-off-by: Viktor Govako --- generator/generator_tests/osm_type_test.cpp | 1 + libs/indexer/ftypes_matcher.cpp | 2 ++ libs/routing_common/bicycle_model.cpp | 1 + libs/routing_common/pedestrian_model.cpp | 2 ++ libs/routing_common/routing_common_tests/vehicle_model_test.cpp | 2 ++ libs/routing_common/vehicle_model.cpp | 2 ++ libs/routing_common/vehicle_model.hpp | 1 + 7 files changed, 11 insertions(+) diff --git a/generator/generator_tests/osm_type_test.cpp b/generator/generator_tests/osm_type_test.cpp index f00733e86..2a4aa7827 100644 --- a/generator/generator_tests/osm_type_test.cpp +++ b/generator/generator_tests/osm_type_test.cpp @@ -2311,6 +2311,7 @@ UNIT_CLASS_TEST(TestWithClassificator, OsmType_SimpleTypesSmoke) {"highway", "cycleway"}, {"highway", "footway"}, {"highway", "ford"}, + {"highway", "ladder"}, {"highway", "living_street"}, {"highway", "motorway"}, {"highway", "motorway_junction"}, diff --git a/libs/indexer/ftypes_matcher.cpp b/libs/indexer/ftypes_matcher.cpp index 485528c35..256d70cd4 100644 --- a/libs/indexer/ftypes_matcher.cpp +++ b/libs/indexer/ftypes_matcher.cpp @@ -61,6 +61,7 @@ public: m_map[c.GetTypeByPath({"highway", "pedestrian"})] = HighwayClass::Pedestrian; m_map[c.GetTypeByPath({"highway", "footway"})] = HighwayClass::Pedestrian; m_map[c.GetTypeByPath({"highway", "bridleway"})] = HighwayClass::Pedestrian; + m_map[c.GetTypeByPath({"highway", "ladder"})] = HighwayClass::Pedestrian; m_map[c.GetTypeByPath({"highway", "steps"})] = HighwayClass::Pedestrian; m_map[c.GetTypeByPath({"highway", "cycleway"})] = HighwayClass::Pedestrian; m_map[c.GetTypeByPath({"highway", "path"})] = HighwayClass::Pedestrian; @@ -327,6 +328,7 @@ IsWayChecker::IsWayChecker() {"secondary", Regular}, {"secondary_link", Regular}, {"service", Minors}, + {"ladder", Pedestrian}, {"steps", Pedestrian}, {"tertiary", Regular}, {"tertiary_link", Regular}, diff --git a/libs/routing_common/bicycle_model.cpp b/libs/routing_common/bicycle_model.cpp index 063026be9..e016b8051 100644 --- a/libs/routing_common/bicycle_model.cpp +++ b/libs/routing_common/bicycle_model.cpp @@ -86,6 +86,7 @@ VehicleModel::LimitsInitList const kDefaultOptions = { {HighwayType::HighwayCycleway, true}, {HighwayType::HighwayResidential, true}, {HighwayType::HighwayLivingStreet, true}, + // HighwayLadder is missing {HighwayType::HighwaySteps, true}, {HighwayType::HighwayPedestrian, true}, {HighwayType::HighwayFootway, true}, diff --git a/libs/routing_common/pedestrian_model.cpp b/libs/routing_common/pedestrian_model.cpp index 656332a3d..5234cc02f 100644 --- a/libs/routing_common/pedestrian_model.cpp +++ b/libs/routing_common/pedestrian_model.cpp @@ -41,6 +41,7 @@ HighwayBasedSpeeds const kDefaultSpeeds = { {HighwayType::HighwayResidential, InOutCitySpeedKMpH(SpeedKMpH(4.5, 5.0))}, {HighwayType::HighwayBridleway, InOutCitySpeedKMpH(SpeedKMpH(1.0, 5.0))}, + {HighwayType::HighwayLadder, InOutCitySpeedKMpH(SpeedKMpH(1.0))}, {HighwayType::HighwaySteps, InOutCitySpeedKMpH(SpeedKMpH(3.0))}, {HighwayType::HighwayCycleway, InOutCitySpeedKMpH(SpeedKMpH(4.0, 5.0))}, @@ -80,6 +81,7 @@ VehicleModel::LimitsInitList const kDefaultOptions = { // HighwayBridleway, HighwayCycleway are missing {HighwayType::HighwayResidential, true}, {HighwayType::HighwayLivingStreet, true}, + {HighwayType::HighwayLadder, true}, {HighwayType::HighwaySteps, true}, {HighwayType::HighwayPedestrian, true}, {HighwayType::HighwayFootway, true}, diff --git a/libs/routing_common/routing_common_tests/vehicle_model_test.cpp b/libs/routing_common/routing_common_tests/vehicle_model_test.cpp index 66462fda4..caf501444 100644 --- a/libs/routing_common/routing_common_tests/vehicle_model_test.cpp +++ b/libs/routing_common/routing_common_tests/vehicle_model_test.cpp @@ -485,6 +485,7 @@ UNIT_TEST(VehicleModel_HighwayType_Values) TEST(check(HighwayType::HighwayMotorwayLink, {"highway", "motorway_link"}), ()); TEST(check(HighwayType::HighwayLivingStreet, {"highway", "living_street"}), ()); TEST(check(HighwayType::HighwayMotorway, {"highway", "motorway"}), ()); + TEST(check(HighwayType::HighwayLadder, {"highway", "ladder"}), ()); TEST(check(HighwayType::HighwaySteps, {"highway", "steps"}), ()); TEST(check(HighwayType::HighwayTrunk, {"highway", "trunk"}), ()); TEST(check(HighwayType::HighwayPedestrian, {"highway", "pedestrian"}), ()); @@ -495,6 +496,7 @@ UNIT_TEST(VehicleModel_HighwayType_Values) TEST(check(HighwayType::HighwaySecondaryLink, {"highway", "secondary_link"}), ()); TEST(check(HighwayType::RouteFerry, {"route", "ferry"}), ()); TEST(check(HighwayType::HighwayTertiaryLink, {"highway", "tertiary_link"}), ()); + TEST(check(HighwayType::HighwayLadder, {"highway", "ladder"}), ()); TEST(check(HighwayType::HighwayBusway, {"highway", "busway"}), ()); TEST(check(HighwayType::RouteShuttleTrain, {"route", "shuttle_train"}), ()); } diff --git a/libs/routing_common/vehicle_model.cpp b/libs/routing_common/vehicle_model.cpp index 3c94d0613..803c10cf2 100644 --- a/libs/routing_common/vehicle_model.cpp +++ b/libs/routing_common/vehicle_model.cpp @@ -301,6 +301,7 @@ HighwayBasedFactors GetOneFactorsForBicycleAndPedestrianModel() {HighwayType::HighwayCycleway, InOutCityFactor(1.0)}, {HighwayType::HighwayResidential, InOutCityFactor(1.0)}, {HighwayType::HighwayLivingStreet, InOutCityFactor(1.0)}, + {HighwayType::HighwayLadder, InOutCityFactor(1.0)}, {HighwayType::HighwaySteps, InOutCityFactor(1.0)}, {HighwayType::HighwayPedestrian, InOutCityFactor(1.0)}, {HighwayType::HighwayFootway, InOutCityFactor(1.0)}, @@ -363,6 +364,7 @@ string DebugPrint(HighwayType type) case HighwayType::HighwayMotorwayLink: return "highway-motorway_link"; case HighwayType::HighwayLivingStreet: return "highway-living_street"; case HighwayType::HighwayMotorway: return "highway-motorway"; + case HighwayType::HighwayLadder: return "highway-ladder"; case HighwayType::HighwaySteps: return "highway-steps"; case HighwayType::HighwayTrunk: return "highway-trunk"; case HighwayType::HighwayPedestrian: return "highway-pedestrian"; diff --git a/libs/routing_common/vehicle_model.hpp b/libs/routing_common/vehicle_model.hpp index 3303854ba..03c38965e 100644 --- a/libs/routing_common/vehicle_model.hpp +++ b/libs/routing_common/vehicle_model.hpp @@ -54,6 +54,7 @@ enum class HighwayType : uint16_t HighwaySecondaryLink = 176, RouteFerry = 259, HighwayTertiaryLink = 272, + HighwayLadder = 478, HighwayBusway = 857, // reserve type here, but this type is not used for any routing by default RouteShuttleTrain = 1054, };