| 264 | } |
| 265 | |
| 266 | BicycleModelFactory::BicycleModelFactory(CountryParentNameGetterFn const & countryParentNameGetterFn) |
| 267 | : VehicleModelFactory(countryParentNameGetterFn) |
| 268 | { |
| 269 | using namespace bicycle_model; |
| 270 | |
| 271 | // Names must be the same with country names from countries.txt |
| 272 | m_models[""] = std::make_shared<BicycleModel>(kDefaultOptions); |
| 273 | |
| 274 | m_models["Australia"] = std::make_shared<BicycleModel>(AllAllowed(), NormalPedestrianAndFootwaySpeed()); |
| 275 | m_models["Austria"] = std::make_shared<BicycleModel>(NoTrunk(), DismountPathSpeed()); |
| 276 | // Belarus law demands to use footways for bicycles where possible. |
| 277 | m_models["Belarus"] = std::make_shared<BicycleModel>(kDefaultOptions, PreferFootwaysToRoads()); |
| 278 | m_models["Belgium"] = std::make_shared<BicycleModel>(NoTrunk(), NormalPedestrianSpeed()); |
| 279 | m_models["Brazil"] = std::make_shared<BicycleModel>(AllAllowed()); |
| 280 | m_models["Denmark"] = std::make_shared<BicycleModel>(NoTrunk()); |
| 281 | m_models["France"] = std::make_shared<BicycleModel>(NoTrunk(), NormalPedestrianSpeed()); |
| 282 | m_models["Finland"] = std::make_shared<BicycleModel>(kDefaultOptions, NormalPedestrianSpeed()); |
| 283 | m_models["Hungary"] = std::make_shared<BicycleModel>(NoTrunk()); |
| 284 | m_models["Iceland"] = std::make_shared<BicycleModel>(AllAllowed(), NormalPedestrianAndFootwaySpeed()); |
| 285 | m_models["Ireland"] = std::make_shared<BicycleModel>(AllAllowed()); |
| 286 | m_models["Italy"] = std::make_shared<BicycleModel>(kDefaultOptions, NormalPedestrianSpeed()); |
| 287 | m_models["Netherlands"] = std::make_shared<BicycleModel>(NoTrunk()); |
| 288 | m_models["Norway"] = std::make_shared<BicycleModel>(AllAllowed(), NormalPedestrianAndFootwaySpeed()); |
| 289 | m_models["Oman"] = std::make_shared<BicycleModel>(AllAllowed()); |
| 290 | m_models["Philippines"] = std::make_shared<BicycleModel>(AllAllowed(), NormalPedestrianSpeed()); |
| 291 | m_models["Poland"] = std::make_shared<BicycleModel>(NoTrunk()); |
| 292 | m_models["Romania"] = std::make_shared<BicycleModel>(AllAllowed()); |
| 293 | // Note. Despite the fact that according to |
| 294 | // https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access-Restrictions passing through service and |
| 295 | // living_street with a bicycle is prohibited it's allowed according to Russian traffic rules. |
| 296 | m_models["Russian Federation"] = std::make_shared<BicycleModel>(kDefaultOptions, NormalPedestrianAndFootwaySpeed()); |
| 297 | m_models["Slovakia"] = std::make_shared<BicycleModel>(NoTrunk()); |
| 298 | m_models["Spain"] = std::make_shared<BicycleModel>(NoTrunk(), NormalPedestrianSpeed()); |
| 299 | m_models["Sweden"] = std::make_shared<BicycleModel>(kDefaultOptions, NormalPedestrianSpeed()); |
| 300 | m_models["Switzerland"] = std::make_shared<BicycleModel>(NoTrunk(), NormalPedestrianAndFootwaySpeed()); |
| 301 | m_models["Ukraine"] = std::make_shared<BicycleModel>(UkraineOptions()); |
| 302 | m_models["United Kingdom"] = std::make_shared<BicycleModel>(AllAllowed()); |
| 303 | m_models["United States of America"] = std::make_shared<BicycleModel>(AllAllowed(), NormalPedestrianSpeed()); |
| 304 | } |
| 305 | } // namespace routing |
nothing calls this directly
no test coverage detected