diff --git a/generator/generator_integration_tests/features_tests.cpp b/generator/generator_integration_tests/features_tests.cpp index a2dc81d2b2..ff94ea1e09 100644 --- a/generator/generator_integration_tests/features_tests.cpp +++ b/generator/generator_integration_tests/features_tests.cpp @@ -321,7 +321,7 @@ public: TestGeneratedFile(maxSpeeds, 1301515 /* fileSize */); TestGeneratedFile(metalines, 288032 /* fileSize */); TestGeneratedFile(restrictions, 371110 /* fileSize */); - TestGeneratedFile(roadAccess, 1969045 /* fileSize */); + TestGeneratedFile(roadAccess, 1970528 /* fileSize */); TestGeneratedFile(m_genInfo.m_citiesBoundariesFilename, 87 /* fileSize */); } diff --git a/generator/road_access_generator.cpp b/generator/road_access_generator.cpp index a2a5f61c8f..b17bbe3beb 100644 --- a/generator/road_access_generator.cpp +++ b/generator/road_access_generator.cpp @@ -111,13 +111,16 @@ TagMapping const kBicycleBarriersTagMapping = { // Empty mapping leads to default RoadAccess::Type::Yes access type for all roads. TagMapping const kTransitTagMapping = {}; +TagMapping const kForbiddenRoadsTagMapping = { + {OsmElement::Tag("highway", "ford"), RoadAccess::Type::No} +}; + TagMapping const kDefaultTagMapping = { {OsmElement::Tag("access", "yes"), RoadAccess::Type::Yes}, {OsmElement::Tag("access", "permissive"), RoadAccess::Type::Yes}, {OsmElement::Tag("access", "no"), RoadAccess::Type::No}, {OsmElement::Tag("access", "private"), RoadAccess::Type::Private}, {OsmElement::Tag("access", "destination"), RoadAccess::Type::Destination}, - {OsmElement::Tag("highway", "ford"), RoadAccess::Type::No} }; set const kHighwaysWhereIgnorePrivateAccessForCar = { @@ -260,6 +263,7 @@ RoadAccessTagProcessor::RoadAccessTagProcessor(VehicleType vehicleType) switch (vehicleType) { case VehicleType::Car: + m_accessMappings.push_back(&kForbiddenRoadsTagMapping); m_accessMappings.push_back(&kMotorCarTagMapping); m_accessMappings.push_back(&kMotorVehicleTagMapping); m_accessMappings.push_back(&kVehicleTagMapping); @@ -268,11 +272,13 @@ RoadAccessTagProcessor::RoadAccessTagProcessor(VehicleType vehicleType) m_hwIgnoreBarriersWithoutAccess = &kHighwaysWhereIgnorePrivateAccessForCar; break; case VehicleType::Pedestrian: + m_accessMappings.push_back(&kForbiddenRoadsTagMapping); m_accessMappings.push_back(&kPedestrianTagMapping); m_accessMappings.push_back(&kDefaultTagMapping); m_hwIgnoreBarriersWithoutAccess = &kHighwaysWhereIgnorePrivateAccessEmpty; break; case VehicleType::Bicycle: + m_accessMappings.push_back(&kForbiddenRoadsTagMapping); m_accessMappings.push_back(&kBicycleTagMapping); m_accessMappings.push_back(&kVehicleTagMapping); m_accessMappings.push_back(&kDefaultTagMapping);