From aa32f5e6ff3c004d0816d89a86df919d6d86aca2 Mon Sep 17 00:00:00 2001 From: tatiana-kondakova Date: Mon, 24 Jul 2017 15:15:55 +0300 Subject: [PATCH] Add place to store information about transit permissions to VehicleModel, RoadGeometry --- routing/features_road_graph.cpp | 5 + routing/features_road_graph.hpp | 1 + routing/geometry.cpp | 1 + routing/geometry.hpp | 2 + routing_common/bicycle_model.cpp | 834 +++++++++++++------------- routing_common/car_model.cpp | 32 +- routing_common/pedestrian_model.cpp | 874 ++++++++++++++-------------- routing_common/vehicle_model.cpp | 26 +- routing_common/vehicle_model.hpp | 21 +- 9 files changed, 917 insertions(+), 879 deletions(-) diff --git a/routing/features_road_graph.cpp b/routing/features_road_graph.cpp index fa6d24382a..c2d368ef02 100644 --- a/routing/features_road_graph.cpp +++ b/routing/features_road_graph.cpp @@ -74,6 +74,11 @@ bool FeaturesRoadGraph::CrossCountryVehicleModel::IsRoad(FeatureType const & f) return GetVehicleModel(f.GetID())->IsRoad(f); } +bool FeaturesRoadGraph::CrossCountryVehicleModel::IsTransitAllowed(FeatureType const & f) const +{ + return GetVehicleModel(f.GetID())->IsTransitAllowed(f); +} + IVehicleModel * FeaturesRoadGraph::CrossCountryVehicleModel::GetVehicleModel(FeatureID const & featureId) const { auto itr = m_cache.find(featureId.m_mwmId); diff --git a/routing/features_road_graph.hpp b/routing/features_road_graph.hpp index a5e31040fd..e0303e9c8d 100644 --- a/routing/features_road_graph.hpp +++ b/routing/features_road_graph.hpp @@ -35,6 +35,7 @@ private: double GetMaxSpeed() const override; bool IsOneWay(FeatureType const & f) const override; bool IsRoad(FeatureType const & f) const override; + bool IsTransitAllowed(FeatureType const & f) const override; void Clear(); diff --git a/routing/geometry.cpp b/routing/geometry.cpp index 3c4c360862..8f00e987ec 100644 --- a/routing/geometry.cpp +++ b/routing/geometry.cpp @@ -92,6 +92,7 @@ void RoadGeometry::Load(IVehicleModel const & vehicleModel, FeatureType const & m_valid = vehicleModel.IsRoad(feature); m_isOneWay = vehicleModel.IsOneWay(feature); m_speed = vehicleModel.GetSpeed(feature); + m_isTransitAllowed = vehicleModel.IsTransitAllowed(feature); m_points.clear(); m_points.reserve(feature.GetPointsCount()); diff --git a/routing/geometry.hpp b/routing/geometry.hpp index 8a4646329b..e6163c871b 100644 --- a/routing/geometry.hpp +++ b/routing/geometry.hpp @@ -30,6 +30,7 @@ public: bool IsOneWay() const { return m_isOneWay; } // Kilometers per hour. double GetSpeed() const { return m_speed; } + bool IsTransitAllowed() const { return m_isTransitAllowed; } m2::PointD const & GetPoint(uint32_t pointId) const { ASSERT_LESS(pointId, m_points.size(), ()); @@ -55,6 +56,7 @@ private: double m_speed = 0.0; bool m_isOneWay = false; bool m_valid = false; + bool m_isTransitAllowed = false; }; class GeometryLoader diff --git a/routing_common/bicycle_model.cpp b/routing_common/bicycle_model.cpp index 0f24d4fb9a..ec19f11a12 100644 --- a/routing_common/bicycle_model.cpp +++ b/routing_common/bicycle_model.cpp @@ -52,533 +52,533 @@ double constexpr kSpeedPierKMpH = 7.0; // Default routing::VehicleModel::InitListT const g_bicycleLimitsDefault = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // All options available. routing::VehicleModel::InitListT const g_bicycleLimitsAll = { - { {"highway", "trunk"}, kSpeedCyclewayKMpH }, - { {"highway", "trunk_link"}, kSpeedCyclewayKMpH }, - { {"highway", "primary"}, kSpeedCyclewayKMpH }, - { {"highway", "primary_link"}, kSpeedCyclewayKMpH }, - { {"highway", "secondary"}, kSpeedCyclewayKMpH }, - { {"highway", "secondary_link"}, kSpeedCyclewayKMpH }, - { {"highway", "tertiary"}, kSpeedCyclewayKMpH }, - { {"highway", "tertiary_link"}, kSpeedCyclewayKMpH }, - { {"highway", "service"}, kSpeedCyclewayKMpH }, - { {"highway", "unclassified"}, kSpeedCyclewayKMpH }, - { {"highway", "road"}, kSpeedCyclewayKMpH }, - { {"highway", "track"}, kSpeedCyclewayKMpH }, - { {"highway", "path"}, kSpeedCyclewayKMpH }, - { {"highway", "bridleway"}, kSpeedCyclewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedCyclewayKMpH }, - { {"highway", "living_street"}, kSpeedCyclewayKMpH }, - { {"highway", "steps"}, kSpeedCyclewayKMpH }, - { {"highway", "pedestrian"}, kSpeedCyclewayKMpH }, - { {"highway", "footway"}, kSpeedCyclewayKMpH }, - { {"highway", "platform"}, kSpeedCyclewayKMpH }, + { {"highway", "trunk"}, kSpeedCyclewayKMpH, true }, + { {"highway", "trunk_link"}, kSpeedCyclewayKMpH, true }, + { {"highway", "primary"}, kSpeedCyclewayKMpH, true }, + { {"highway", "primary_link"}, kSpeedCyclewayKMpH, true }, + { {"highway", "secondary"}, kSpeedCyclewayKMpH, true }, + { {"highway", "secondary_link"}, kSpeedCyclewayKMpH, true }, + { {"highway", "tertiary"}, kSpeedCyclewayKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedCyclewayKMpH, true }, + { {"highway", "service"}, kSpeedCyclewayKMpH, true }, + { {"highway", "unclassified"}, kSpeedCyclewayKMpH, true }, + { {"highway", "road"}, kSpeedCyclewayKMpH, true }, + { {"highway", "track"}, kSpeedCyclewayKMpH, true }, + { {"highway", "path"}, kSpeedCyclewayKMpH, true }, + { {"highway", "bridleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedCyclewayKMpH, true }, + { {"highway", "living_street"}, kSpeedCyclewayKMpH, true }, + { {"highway", "steps"}, kSpeedCyclewayKMpH, true }, + { {"highway", "pedestrian"}, kSpeedCyclewayKMpH, true }, + { {"highway", "footway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "platform"}, kSpeedCyclewayKMpH, true }, }; // Australia routing::VehicleModel::InitListT const g_bicycleLimitsAustralia = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, // * - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, // * + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Austria routing::VehicleModel::InitListT const g_bicycleLimitsAustria = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Belarus routing::VehicleModel::InitListT const g_bicycleLimitsBelarus = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, // * - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, // * + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Belgium routing::VehicleModel::InitListT const g_bicycleLimitsBelgium = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, // * - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, // * - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, // * + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, // * + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Brazil routing::VehicleModel::InitListT const g_bicycleLimitsBrazil = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Denmark routing::VehicleModel::InitListT const g_bicycleLimitsDenmark = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // France routing::VehicleModel::InitListT const g_bicycleLimitsFrance = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Finland routing::VehicleModel::InitListT const g_bicycleLimitsFinland = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Germany routing::VehicleModel::InitListT const g_bicycleLimitsGermany = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Hungary routing::VehicleModel::InitListT const g_bicycleLimitsHungary = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, // * - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, // * + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Netherlands routing::VehicleModel::InitListT const g_bicycleLimitsNetherlands = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Norway routing::VehicleModel::InitListT const g_bicycleLimitsNorway = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Poland routing::VehicleModel::InitListT const g_bicycleLimitsPoland = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Romania routing::VehicleModel::InitListT const g_bicycleLimitsRomania = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Russia routing::VehicleModel::InitListT const g_bicycleLimitsRussia = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedPedestrianKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, false }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, false }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedPedestrianKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Slovakia routing::VehicleModel::InitListT const g_bicycleLimitsSlovakia = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Switzerland routing::VehicleModel::InitListT const g_bicycleLimitsSwitzerland = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Turkey routing::VehicleModel::InitListT const g_bicycleLimitsTurkey = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Ukraine routing::VehicleModel::InitListT const g_bicycleLimitsUkraine = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, false }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, false }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // United Kingdom routing::VehicleModel::InitListT const g_bicycleLimitsUK = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // USA routing::VehicleModel::InitListT const g_bicycleLimitsUSA = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; } // namespace diff --git a/routing_common/car_model.cpp b/routing_common/car_model.cpp index f5d38bb8f4..b1c9613537 100644 --- a/routing_common/car_model.cpp +++ b/routing_common/car_model.cpp @@ -30,22 +30,22 @@ double constexpr kSpeedRailMotorcarVehicleKMpH = 25.0; double constexpr kSpeedShuttleTrainKMpH = 25.0; routing::VehicleModel::InitListT const s_carLimits = { - {{"highway", "motorway"}, kSpeedMotorwayKMpH}, - {{"highway", "trunk"}, kSpeedTrunkKMpH}, - {{"highway", "motorway_link"}, kSpeedMotorwayLinkKMpH}, - {{"highway", "trunk_link"}, kSpeedTrunkLinkKMpH}, - {{"highway", "primary"}, kSpeedPrimaryKMpH}, - {{"highway", "primary_link"}, kSpeedPrimaryLinkKMpH}, - {{"highway", "secondary"}, kSpeedSecondaryKMpH}, - {{"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH}, - {{"highway", "tertiary"}, kSpeedTertiaryKMpH}, - {{"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH}, - {{"highway", "residential"}, kSpeedResidentialKMpH}, - {{"highway", "unclassified"}, kSpeedUnclassifiedKMpH}, - {{"highway", "service"}, kSpeedServiceKMpH}, - {{"highway", "living_street"}, kSpeedLivingStreetKMpH}, - {{"highway", "road"}, kSpeedRoadKMpH}, - {{"highway", "track"}, kSpeedTrackKMpH}, + {{"highway", "motorway"}, kSpeedMotorwayKMpH, true}, + {{"highway", "trunk"}, kSpeedTrunkKMpH, true}, + {{"highway", "motorway_link"}, kSpeedMotorwayLinkKMpH, true}, + {{"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true}, + {{"highway", "primary"}, kSpeedPrimaryKMpH, true}, + {{"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true}, + {{"highway", "secondary"}, kSpeedSecondaryKMpH, true}, + {{"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true}, + {{"highway", "tertiary"}, kSpeedTertiaryKMpH, true}, + {{"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true}, + {{"highway", "residential"}, kSpeedResidentialKMpH, true}, + {{"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true}, + {{"highway", "service"}, kSpeedServiceKMpH, true}, + {{"highway", "living_street"}, kSpeedLivingStreetKMpH, true}, + {{"highway", "road"}, kSpeedRoadKMpH, true}, + {{"highway", "track"}, kSpeedTrackKMpH, true}, /// @todo: Add to classificator //{ {"highway", "shuttle_train"}, 10 }, //{ {"highway", "ferry"}, 5 }, diff --git a/routing_common/pedestrian_model.cpp b/routing_common/pedestrian_model.cpp index 0f6350da02..f98dff03cb 100644 --- a/routing_common/pedestrian_model.cpp +++ b/routing_common/pedestrian_model.cpp @@ -52,553 +52,553 @@ double constexpr kSpeedPierKMpH = 4.0; // Default routing::VehicleModel::InitListT const g_pedestrianLimitsDefault = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // All options available. routing::VehicleModel::InitListT const g_pedestrianLimitsAll = { - { {"highway", "trunk"}, kSpeedPedestrianKMpH }, - { {"highway", "trunk_link"}, kSpeedPedestrianKMpH }, - { {"highway", "primary"}, kSpeedPedestrianKMpH }, - { {"highway", "primary_link"}, kSpeedPedestrianKMpH }, - { {"highway", "secondary"}, kSpeedPedestrianKMpH }, - { {"highway", "secondary_link"}, kSpeedPedestrianKMpH }, - { {"highway", "tertiary"}, kSpeedPedestrianKMpH }, - { {"highway", "tertiary_link"}, kSpeedPedestrianKMpH }, - { {"highway", "service"}, kSpeedPedestrianKMpH }, - { {"highway", "unclassified"}, kSpeedPedestrianKMpH }, - { {"highway", "road"}, kSpeedPedestrianKMpH }, - { {"highway", "track"}, kSpeedPedestrianKMpH }, - { {"highway", "path"}, kSpeedPedestrianKMpH }, - { {"highway", "bridleway"}, kSpeedPedestrianKMpH }, - { {"highway", "cycleway"}, kSpeedPedestrianKMpH }, - { {"highway", "residential"}, kSpeedPedestrianKMpH }, - { {"highway", "living_street"}, kSpeedPedestrianKMpH }, - { {"highway", "steps"}, kSpeedPedestrianKMpH }, - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedPedestrianKMpH }, - { {"highway", "platform"}, kSpeedPedestrianKMpH }, + { {"highway", "trunk"}, kSpeedPedestrianKMpH, true }, + { {"highway", "trunk_link"}, kSpeedPedestrianKMpH, true }, + { {"highway", "primary"}, kSpeedPedestrianKMpH, true }, + { {"highway", "primary_link"}, kSpeedPedestrianKMpH, true }, + { {"highway", "secondary"}, kSpeedPedestrianKMpH, true }, + { {"highway", "secondary_link"}, kSpeedPedestrianKMpH, true }, + { {"highway", "tertiary"}, kSpeedPedestrianKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedPedestrianKMpH, true }, + { {"highway", "service"}, kSpeedPedestrianKMpH, true }, + { {"highway", "unclassified"}, kSpeedPedestrianKMpH, true }, + { {"highway", "road"}, kSpeedPedestrianKMpH, true }, + { {"highway", "track"}, kSpeedPedestrianKMpH, true }, + { {"highway", "path"}, kSpeedPedestrianKMpH, true }, + { {"highway", "bridleway"}, kSpeedPedestrianKMpH, true }, + { {"highway", "cycleway"}, kSpeedPedestrianKMpH, true }, + { {"highway", "residential"}, kSpeedPedestrianKMpH, true }, + { {"highway", "living_street"}, kSpeedPedestrianKMpH, true }, + { {"highway", "steps"}, kSpeedPedestrianKMpH, true }, + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedPedestrianKMpH, true }, + { {"highway", "platform"}, kSpeedPedestrianKMpH, true }, }; // Australia routing::VehicleModel::InitListT const g_pedestrianLimitsAustralia = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, // * - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, // * + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Austria routing::VehicleModel::InitListT const g_pedestrianLimitsAustria = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Belarus routing::VehicleModel::InitListT const g_pedestrianLimitsBelarus = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, // * - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, // * + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Belgium routing::VehicleModel::InitListT const g_pedestrianLimitsBelgium = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, // * - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, // * - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, // * + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, // * + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Brazil routing::VehicleModel::InitListT const g_pedestrianLimitsBrazil = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Denmark routing::VehicleModel::InitListT const g_pedestrianLimitsDenmark = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // France routing::VehicleModel::InitListT const g_pedestrianLimitsFrance = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Finland routing::VehicleModel::InitListT const g_pedestrianLimitsFinland = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Germany routing::VehicleModel::InitListT const g_pedestrianLimitsGermany = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Hungary routing::VehicleModel::InitListT const g_pedestrianLimitsHungary = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, // * - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, // * + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Netherlands routing::VehicleModel::InitListT const g_pedestrianLimitsNetherlands = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Norway routing::VehicleModel::InitListT const g_pedestrianLimitsNorway = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Poland routing::VehicleModel::InitListT const g_pedestrianLimitsPoland = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Romania routing::VehicleModel::InitListT const g_pedestrianLimitsRomania = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Russia routing::VehicleModel::InitListT const g_pedestrianLimitsRussia = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Slovakia routing::VehicleModel::InitListT const g_pedestrianLimitsSlovakia = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Switzerland routing::VehicleModel::InitListT const g_pedestrianLimitsSwitzerland = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Turkey routing::VehicleModel::InitListT const g_pedestrianLimitsTurkey = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // Ukraine routing::VehicleModel::InitListT const g_pedestrianLimitsUkraine = { - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // United Kingdom routing::VehicleModel::InitListT const g_pedestrianLimitsUK = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, // * - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, // * + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; // USA routing::VehicleModel::InitListT const g_pedestrianLimitsUS = { - { {"highway", "trunk"}, kSpeedTrunkKMpH }, - { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH }, - { {"highway", "primary"}, kSpeedPrimaryKMpH }, - { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH }, - { {"highway", "secondary"}, kSpeedSecondaryKMpH }, - { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH }, - { {"highway", "tertiary"}, kSpeedTertiaryKMpH }, - { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH }, - { {"highway", "service"}, kSpeedServiceKMpH }, // * - { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH }, - { {"highway", "road"}, kSpeedRoadKMpH }, - { {"highway", "track"}, kSpeedTrackKMpH }, // * - { {"highway", "path"}, kSpeedPathKMpH }, - { {"highway", "bridleway"}, kSpeedBridlewayKMpH }, - { {"highway", "cycleway"}, kSpeedCyclewayKMpH }, - { {"highway", "residential"}, kSpeedResidentialKMpH }, - { {"highway", "living_street"}, kSpeedLivingStreetKMpH }, - { {"highway", "steps"}, kSpeedStepsKMpH }, // * - { {"highway", "pedestrian"}, kSpeedPedestrianKMpH }, - { {"highway", "footway"}, kSpeedFootwayKMpH }, - { {"highway", "platform"}, kSpeedPlatformKMpH }, // * + { {"highway", "trunk"}, kSpeedTrunkKMpH, true }, + { {"highway", "trunk_link"}, kSpeedTrunkLinkKMpH, true }, + { {"highway", "primary"}, kSpeedPrimaryKMpH, true }, + { {"highway", "primary_link"}, kSpeedPrimaryLinkKMpH, true }, + { {"highway", "secondary"}, kSpeedSecondaryKMpH, true }, + { {"highway", "secondary_link"}, kSpeedSecondaryLinkKMpH, true }, + { {"highway", "tertiary"}, kSpeedTertiaryKMpH, true }, + { {"highway", "tertiary_link"}, kSpeedTertiaryLinkKMpH, true }, + { {"highway", "service"}, kSpeedServiceKMpH, true }, // * + { {"highway", "unclassified"}, kSpeedUnclassifiedKMpH, true }, + { {"highway", "road"}, kSpeedRoadKMpH, true }, + { {"highway", "track"}, kSpeedTrackKMpH, true }, // * + { {"highway", "path"}, kSpeedPathKMpH, true }, + { {"highway", "bridleway"}, kSpeedBridlewayKMpH, true }, + { {"highway", "cycleway"}, kSpeedCyclewayKMpH, true }, + { {"highway", "residential"}, kSpeedResidentialKMpH, true }, + { {"highway", "living_street"}, kSpeedLivingStreetKMpH, true }, + { {"highway", "steps"}, kSpeedStepsKMpH, true }, // * + { {"highway", "pedestrian"}, kSpeedPedestrianKMpH, true }, + { {"highway", "footway"}, kSpeedFootwayKMpH, true }, + { {"highway", "platform"}, kSpeedPlatformKMpH, true }, // * }; } // namespace diff --git a/routing_common/vehicle_model.cpp b/routing_common/vehicle_model.cpp index cc76f96c8a..28dd63b814 100644 --- a/routing_common/vehicle_model.cpp +++ b/routing_common/vehicle_model.cpp @@ -18,14 +18,14 @@ VehicleModel::AdditionalRoadType::AdditionalRoadType(Classificator const & c, { } -VehicleModel::VehicleModel(Classificator const & c, InitListT const & speedLimits) +VehicleModel::VehicleModel(Classificator const & c, InitListT const & featureTypeLimits) : m_maxSpeedKMpH(0), m_onewayType(c.GetTypeByPath({ "hwtag", "oneway" })) { - for (auto const & v : speedLimits) + for (auto const & v : featureTypeLimits) { m_maxSpeedKMpH = max(m_maxSpeedKMpH, v.m_speedKMpH); - m_types[c.GetTypeByPath(vector(v.m_types, v.m_types + 2))] = v.m_speedKMpH; + m_types[c.GetTypeByPath(vector(v.m_types, v.m_types + 2))] = {v.m_speedKMpH, v.m_isTransitAllowed}; } } @@ -60,7 +60,7 @@ double VehicleModel::GetMinTypeSpeed(feature::TypesHolder const & types) const uint32_t const type = ftypes::BaseChecker::PrepareToMatch(t, 2); auto it = m_types.find(type); if (it != m_types.end()) - speed = min(speed, it->second); + speed = min(speed, it->second.m_speedKMpH); auto const addRoadInfoIter = FindRoadType(t); if (addRoadInfoIter != m_addRoadTypes.cend()) @@ -104,6 +104,24 @@ bool VehicleModel::IsRoad(FeatureType const & f) const return HasRoadType(types); } +bool VehicleModel::IsTransitAllowed(FeatureType const & f) const +{ + feature::TypesHolder const types(f); + + for (uint32_t t : types) + { + uint32_t const type = ftypes::BaseChecker::PrepareToMatch(t, 2); + auto it = m_types.find(type); + if (it != m_types.end()) + { + if (it->second.m_isTransitAllowed) + return true; + } + } + + return false; +} + bool VehicleModel::IsRoadType(uint32_t type) const { return FindRoadType(type) != m_addRoadTypes.cend() || diff --git a/routing_common/vehicle_model.hpp b/routing_common/vehicle_model.hpp index 2080027e2c..57a53979af 100644 --- a/routing_common/vehicle_model.hpp +++ b/routing_common/vehicle_model.hpp @@ -37,8 +37,11 @@ public: virtual bool IsOneWay(FeatureType const & f) const = 0; - /// @returns true iff feature |f| can be used for routing with corresponding vehicle model. + /// @returns true if feature |f| can be used for routing with corresponding vehicle model. virtual bool IsRoad(FeatureType const & f) const = 0; + + /// @returns true if feature |f| can be used for transit with corresponding vehicle model. + virtual bool IsTransitAllowed(FeatureType const & f) const = 0; }; class VehicleModelFactory @@ -56,21 +59,23 @@ public: class VehicleModel : public IVehicleModel { public: - struct SpeedForType + struct FeatureTypeLimits { char const * m_types[2]; /// 2-arity road type double m_speedKMpH; /// max allowed speed on this road type + bool m_isTransitAllowed; /// transit allowed for this road type }; - typedef initializer_list InitListT; + typedef initializer_list InitListT; - VehicleModel(Classificator const & c, InitListT const & speedLimits); + VehicleModel(Classificator const & c, InitListT const & featureTypeLimits); /// IVehicleModel overrides: double GetSpeed(FeatureType const & f) const override; double GetMaxSpeed() const override { return m_maxSpeedKMpH; } bool IsOneWay(FeatureType const & f) const override; bool IsRoad(FeatureType const & f) const override; + bool IsTransitAllowed(FeatureType const & f) const override; public: @@ -123,9 +128,15 @@ private: double const m_speedKMpH; }; + struct RoadLimits + { + double m_speedKMpH; + bool m_isTransitAllowed; + }; + vector::const_iterator FindRoadType(uint32_t type) const; - unordered_map m_types; + unordered_map m_types; vector m_addRoadTypes; uint32_t m_onewayType;