Merge commit '2601ec854a' into traffic

# Conflicts:
#	iphone/Maps/Model/Settings.swift
#	iphone/Maps/UI/Settings/SettingsNavigationView.swift
This commit is contained in:
mvglasow
2025-11-05 23:06:07 +02:00
561 changed files with 7632 additions and 4277 deletions

View File

@@ -17,20 +17,20 @@ using CountrySetT = std::unordered_set<std::string_view>;
CountrySetT kEAEU = {"Armenia", "Belarus", "Kazakhstan", "Kyrgyzstan", "Russian Federation"};
// The Schengen Area list of countries.
CountrySetT kSchengenArea = {"Austria", "Belgium", "Czech Republic", "Denmark", "Estonia", "Finland",
"France", "Germany", "Greece", "Hungary", "Iceland", "Italy",
"Latvia", "Liechtenstein", "Lithuania", "Luxembourg", "Malta", "Netherlands",
"Norway", "Poland", "Portugal", "Slovakia", "Slovenia", "Spain",
"Sweden", "Switzerland", "Croatia"};
CountrySetT kSchengenArea = {"Austria", "Belgium", "Bulgaria", "Croatia", "Czech Republic", "Denmark",
"Estonia", "Finland", "France", "Germany", "Greece", "Hungary",
"Iceland", "Italy", "Latvia", "Liechtenstein", "Lithuania", "Luxembourg",
"Malta", "Netherlands", "Norway", "Poland", "Portugal", "Romania",
"Slovakia", "Slovenia", "Spain", "Sweden", "Switzerland"};
std::string_view kIreland = "Ireland";
std::string_view kNorthernIrelandMwm = "UK_Northern Ireland";
std::string_view constexpr kIreland = "Ireland";
std::string_view constexpr kNorthernIrelandMwm = "UK_Northern Ireland";
// In fact, there is no _total_ border control on major roads between Israel and Palestine (UN boundary), except:
// - Gaza, strict access/barrier restrictions should be mapped, no transit traffic.
// - West bank wall (https://www.openstreetmap.org/relation/1410327), access/barrier restrictions should be mapped.
CountrySetT kIsraelAndPalestine = {"Israel Region", "Palestine Region"};
std::string_view kJerusalemMwm = "Jerusalem";
std::string_view constexpr kJerusalemMwm = "Jerusalem";
bool IsInSet(CountrySetT const & theSet, std::string const & country)
{

View File

@@ -65,7 +65,9 @@ RoutingOptionsClassifier::RoutingOptionsClassifier()
{{"highway", "track"}, RoutingOptions::Road::Dirty},
{{"highway", "road"}, RoutingOptions::Road::Dirty},
{{"psurface", "unpaved_bad"}, RoutingOptions::Road::Dirty},
{{"psurface", "unpaved_good"}, RoutingOptions::Road::Dirty}};
{{"psurface", "unpaved_good"}, RoutingOptions::Road::Dirty},
{{"highway", "steps"}, RoutingOptions::Road::Steps},
{{"highway", "ladder"}, RoutingOptions::Road::Steps}};
m_data.Reserve(std::size(types));
for (auto const & data : types)
@@ -103,6 +105,9 @@ RoutingOptions::Road ChooseMainRoutingOptionRoad(RoutingOptions options, bool is
if (options.Has(RoutingOptions::Road::Motorway))
return RoutingOptions::Road::Motorway;
if (options.Has(RoutingOptions::Road::Steps))
return RoutingOptions::Road::Steps;
return RoutingOptions::Road::Usual;
}
@@ -126,6 +131,7 @@ string DebugPrint(RoutingOptions const & routingOptions)
append(RoutingOptions::Road::Motorway);
append(RoutingOptions::Road::Ferry);
append(RoutingOptions::Road::Dirty);
append(RoutingOptions::Road::Steps);
if (wasAppended)
ss << " | ";
@@ -143,6 +149,7 @@ string DebugPrint(RoutingOptions::Road type)
case RoutingOptions::Road::Motorway: return "motorway";
case RoutingOptions::Road::Ferry: return "ferry";
case RoutingOptions::Road::Dirty: return "dirty";
case RoutingOptions::Road::Steps: return "steps";
case RoutingOptions::Road::Usual: return "usual";
case RoutingOptions::Road::Max: return "max";
}

View File

@@ -18,8 +18,9 @@ public:
Motorway = 1u << 2,
Ferry = 1u << 3,
Dirty = 1u << 4,
Steps = 1u << 5,
Max = (1u << 4) + 1
Max = (1u << 5) + 1
};
using RoadType = std::underlying_type_t<Road>;

View File

@@ -78,7 +78,7 @@ RoutingSettings GetRoutingSettings(VehicleType vehicleType)
return {true /* useDirectionForRouteBuilding */,
true /* m_matchRoute */,
true /* m_soundDirection */,
50.0 /* m_matchingThresholdM */,
30.0 /* m_matchingThresholdM */,
true /* m_showTurnAfterNext */,
measurement_utils::KmphToMps(3.0) /* m_minSpeedForRouteRebuildMpS */,
20.0 /* m_finishToleranceM */,