From 916f167a9373cd8d8f8ce13248433a0f99ffe720 Mon Sep 17 00:00:00 2001 From: tombay Date: Tue, 6 Aug 2024 11:15:42 +1000 Subject: [PATCH] Add files via upload Lua files to provide country specific highway data and access methods. --- profiles/lib/country_bicycle_data.lua | 1248 +++++++++++++++++++++++++ profiles/lib/country_foot_data.lua | 1222 ++++++++++++++++++++++++ profiles/lib/country_speeds.lua | 134 +++ profiles/lib/country_vehicle_data.lua | 1180 +++++++++++++++++++++++ 4 files changed, 3784 insertions(+) create mode 100644 profiles/lib/country_bicycle_data.lua create mode 100644 profiles/lib/country_foot_data.lua create mode 100644 profiles/lib/country_speeds.lua create mode 100644 profiles/lib/country_vehicle_data.lua diff --git a/profiles/lib/country_bicycle_data.lua b/profiles/lib/country_bicycle_data.lua new file mode 100644 index 000000000..e870d630d --- /dev/null +++ b/profiles/lib/country_bicycle_data.lua @@ -0,0 +1,1248 @@ +-- Assigns extra_speeds list based on location tag +-- based on reading https://wiki.openstreetmap.org/wiki/Key:motorroad +-- and https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access_restrictions +-- (esp #Alternative_ideas) +-- We treat all cases of motorroad="yes" as no access. +-- pass in way data and speed to set. +-- + +local Set = require('lib/set') +local Sequence = require('lib/sequence') + + + + +local country_bicycle_data = {} + +local no_speed = -1 + + +local bicycle_speeds = Sequence { + cycleway = default_speed, + primary = default_speed, + primary_link = default_speed, + secondary = default_speed, + secondary_link = default_speed, + tertiary = default_speed, + tertiary_link = default_speed, + residential = default_speed, + unclassified = default_speed, + living_street = default_speed, + road = default_speed, + service = default_speed, + track = 12, + path = 13 + } + + +local clist = Set +{ + 'Worldwide', + 'AUS', + 'AUT', + 'tyrol', + 'BLR', + 'BEL', + 'BRA', + 'CHN', + 'DNK', + 'FRA', + 'FIN', + 'DEU', + 'GRC', + 'HKG', + 'HUN', + 'ISL', + 'IRL', + 'ITA', + 'NLD', + 'NOR', + 'OMN', + 'PHL', + 'POL', + 'ROU', + 'RUS', + 'SVK', + 'ESP', + 'SWE', + 'CHE', + 'THA', + 'TUR', + 'UKR', + 'GBR', + 'USA' +} + +local cnames = Sequence +{ + Australia = "AUS", + Austria = "AUT", + Belarus = "BLR", + Belgium = "BEL", + Brazil = "BRA", + China = "CHN", + Denmark = "DNK", + France = "FRA", + Finland = "FIN", + Germany = "DEU", + Greece = "GRC", + Hong_Kong = "HKG", + Hungary = "HUN", + Iceland = "ISL", + Ireland = "IRL", + Italy = "ITA", + Netherlands = "NLD", + Norway = "NOR", + Oman = "OMN", + Philippines = "PHL", + Poland = "POL", + Romania = "ROU", + Russia = "RUS", + Slovakia = "SVK", + Spain = "ESP", + Sweden = "SWE", + Switzerland = "CHE", + Thailand = "THA", + Turkey = "TUR", + Ukraine = "UKR", + United_Kingdom = "GBR", + United_States_of_America = "USA" +} + +local countries = Sequence +{ + Worldwide = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + AUS = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + }, + + bicycle_nsw = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + }, + + bicycle_vic = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + AUT = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + road = bicycle_speeds.road, + living_street = bicycle_speeds.living_street, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + pier = bicycle_speeds.pier + } + } + }, + + tyrol = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + road = bicycle_speeds.road, + living_street = bicycle_speeds.living_street, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + pier = bicycle_speeds.pier + } + } + }, + + BLR = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + service = bicycle_speeds.service, + pedestrian = bicycle_speeds.pedestrian, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + footway_sidewalk = bicycle_speeds.footway_sidewalk, + footway_crossing = bicycle_speeds.footway_crossing, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + pier = bicycle_speeds.pier + } + } + }, + + BEL = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + track = bicycle_speeds.track, + busway = no_speed, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + pier = bicycle_speeds.pier + } + } + }, + + BRA = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = bicycle_speeds.motorway, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + road = bicycle_speeds.road, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pedestrian = bicycle_speeds.pedestrian, + footway = bicycle_speeds.footway, + cycleway = bicycle_speeds.cycleway, + bridleway = bicycle_speeds.bridleway, + path = bicycle_speeds.path, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + pier = bicycle_speeds.pier + } + } + }, + + CHN = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + DNK = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + pedestrian = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + pier = bicycle_speeds.pier + } + } + }, + + FRA = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + track = bicycle_speeds.track, + living_street = bicycle_speeds.living_street, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + pier = bicycle_speeds.pier + } + } + }, + + FIN = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + pier = bicycle_speeds.pier + } + } + }, + + DEU = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + pedestrian = bicycle_speeds.pedestrian, + track = bicycle_speeds.track, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + pier = bicycle_speeds.pier + } + } + }, + + GRC = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + HKG = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + HUN = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + road = bicycle_speeds.road, + living_street = bicycle_speeds.living_street, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + ISL = Sequence + { + bicycle = Sequence + { + highway = + { + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + pier = bicycle_speeds.pier + } + } + }, + + IRL = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + ITA = Sequence + { + bicycle = Sequence + { + highway = + { + path = bicycle_speeds.path, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + pedestrian = bicycle_speeds.pedestrian, + track = bicycle_speeds.track, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + service = bicycle_speeds.service, + tertiary = bicycle_speeds.tertiary, + secondary = bicycle_speeds.secondary, + primary = bicycle_speeds.primary, + trunk = bicycle_speeds.trunk, + motorway = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + living_street = bicycle_speeds.living_street, + pier = bicycle_speeds.pier + } + } + }, + + NLD = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + service = bicycle_speeds.service, + road = bicycle_speeds.road, + track = bicycle_speeds.track, + living_street = bicycle_speeds.living_street, + path = bicycle_speeds.path, + busway = no_speed, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + pedestrian = bicycle_speeds.pedestrian, + pier = bicycle_speeds.pier + } + } + }, + + NOR = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + pier = bicycle_speeds.pier + } + } + }, + + OMN = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = bicycle_speeds.motorway, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + PHL = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + POL = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + ROU = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + RUS = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + service = bicycle_speeds.service, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + footway_sidewalk = bicycle_speeds.footway_sidewalk, + footway_crossing = bicycle_speeds.footway_crossing, + steps = bicycle_speeds.steps, + road = bicycle_speeds.road, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + SVK = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + road = bicycle_speeds.road, + living_street = bicycle_speeds.living_street, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + ESP = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + track = bicycle_speeds.track, + living_street = bicycle_speeds.living_street, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + pedestrian = bicycle_speeds.pedestrian, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + pier = bicycle_speeds.pier + } + } + }, + + SWE = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + path = bicycle_speeds.path, + cycleway = bicycle_speeds.cycleway, + bridleway = bicycle_speeds.bridleway, + footway = bicycle_speeds.footway, + pedestrian = bicycle_speeds.pedestrian, + busway = bicycle_speeds.busway, + bus = bicycle_speeds.bus, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + pier = bicycle_speeds.pier + } + } + }, + + CHE = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + track = bicycle_speeds.track, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + pier = bicycle_speeds.pier + } + } + }, + + THA = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = bicycle_speeds.motorway_link, + trunk = bicycle_speeds.trunk, + trunk_link = bicycle_speeds.trunk_link, + primary = bicycle_speeds.primary, + primary_link = bicycle_speeds.primary_link, + secondary = bicycle_speeds.secondary, + secondary_link = bicycle_speeds.secondary_link, + tertiary = bicycle_speeds.tertiary, + tertiary_link = bicycle_speeds.tertiary_link, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + steps = no_speed, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + TUR = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = no_speed, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + UKR = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + track = bicycle_speeds.track, + road = bicycle_speeds.road, + living_street = bicycle_speeds.living_street, + service = bicycle_speeds.service, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = no_speed, + cycleway = bicycle_speeds.cycleway, + footway = bicycle_speeds.footway, + steps = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + pier = bicycle_speeds.pier + } + } + }, + + GBR = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + pedestrian = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + road = bicycle_speeds.road, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + }, + + USA = Sequence + { + bicycle = Sequence + { + highway = + { + motorway = no_speed, + trunk = bicycle_speeds.trunk, + primary = bicycle_speeds.primary, + secondary = bicycle_speeds.secondary, + tertiary = bicycle_speeds.tertiary, + unclassified = bicycle_speeds.unclassified, + residential = bicycle_speeds.residential, + living_street = bicycle_speeds.living_street, + road = bicycle_speeds.road, + pedestrian = bicycle_speeds.pedestrian, + path = bicycle_speeds.path, + bridleway = bicycle_speeds.bridleway, + cycleway = bicycle_speeds.cycleway, + footway = no_speed, + primary_link = bicycle_speeds.primary_link, + secondary_link = bicycle_speeds.secondary_link, + tertiary_link = bicycle_speeds.tertiary_link, + service = bicycle_speeds.service, + track = bicycle_speeds.track, + pier = bicycle_speeds.pier + } + } + } +} + + +function country_bicycle_data.inAccessSet(country) + if clist[country] then + return true + end + return false +end + +function country_bicycle_data.getCnameEntry(country) + if cnames[country] then + return cnames[country] + end + nob = string.gsub(country, ' ', '_') + if cnames[nob] then + return cnames[nob] + end + return false +end + +function country_bicycle_data.getAccessProfile(country, profile) + if clist[country] then + if countries[country][profile] then + return countries[country][profile] + end + end + return countries['Worldwide'][profile] +end + +return country_bicycle_data + diff --git a/profiles/lib/country_foot_data.lua b/profiles/lib/country_foot_data.lua new file mode 100644 index 000000000..ee210fd62 --- /dev/null +++ b/profiles/lib/country_foot_data.lua @@ -0,0 +1,1222 @@ +-- Assigns extra_speeds list based on location tag +-- based on reading https://wiki.openstreetmap.org/wiki/Key:motorroad +-- and https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access_restrictions +-- (esp #Alternative_ideas) +-- We treat all cases of motorroad="yes" as no access. +-- pass in way data and speed to set. +-- + +local Set = require('lib/set') +local Sequence = require('lib/sequence') + + + +local country_foot_data = {} + +local walking_speed = 5 +local default_speed = 15 +local no_speed = -1 + +local speeds = Sequence { + motorway = 90, + motorway_link = 45, + trunk = 85, + trunk_link = 40, + primary = 65, + primary_link = 30, + secondary = 55, + secondary_link = 25, + tertiary = 40, + tertiary_link = 20, + unclassified = 25, + residential = 25, + living_street = 10, + service = 15 + } + + + +local clist = Set +{ + 'Worldwide', + 'AUS', + 'AUT', + 'tyrol', + 'BLR', + 'BEL', + 'BRA', + 'CHN', + 'DNK', + 'FRA', + 'FIN', + 'DEU', + 'GRC', + 'HKG', + 'HUN', + 'ISL', + 'IRL', + 'ITA', + 'NLD', + 'NOR', + 'OMN', + 'PHL', + 'POL', + 'ROU', + 'RUS', + 'SVK', + 'ESP', + 'SWE', + 'CHE', + 'THA', + 'TUR', + 'UKR', + 'GBR', + 'USA' +} + +local cnames = Sequence +{ + Australia = "AUS", + Austria = "AUT", + Belarus = "BLR", + Belgium = "BEL", + Brazil = "BRA", + China = "CHN", + Denmark = "DNK", + France = "FRA", + Finland = "FIN", + Germany = "DEU", + Greece = "GRC", + Hong_Kong = "HKG", + Hungary = "HUN", + Iceland = "ISL", + Ireland = "IRL", + Italy = "ITA", + Netherlands = "NLD", + Norway = "NOR", + Oman = "OMN", + Philippines = "PHL", + Poland = "POL", + Romania = "ROU", + Russia = "RUS", + Slovakia = "SVK", + Spain = "ESP", + Sweden = "SWE", + Switzerland = "CHE", + Thailand = "THA", + Turkey = "TUR", + Ukraine = "UKR", + United_Kingdom = "GBR", + United_States_of_America = "USA" +} + +local countries = Sequence +{ + Worldwide = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + AUS = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + AUT = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + road = walking_speed, + living_street = walking_speed, + service = walking_speed, + track = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + tyrol = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + road = walking_speed, + living_street = walking_speed, + service = walking_speed, + track = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + BLR = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + service = walking_speed, + pedestrian = walking_speed, + track = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = walking_speed, + footway = walking_speed, + footway_sidewalk = walking_speed, + footway_crossing = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + BEL = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + track = walking_speed, + busway = no_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + service = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + BRA = Sequence + { + foot = Sequence + { + highway = + { + motorway = walking_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + road = walking_speed, + residential = walking_speed, + living_street = walking_speed, + service = walking_speed, + track = walking_speed, + pedestrian = walking_speed, + footway = walking_speed, + cycleway = no_speed, + bridleway = walking_speed, + path = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + CHN = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + DNK = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + track = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + service = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + FRA = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + track = walking_speed, + living_street = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + service = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + FIN = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + track = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + service = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + DEU = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + service = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + pedestrian = walking_speed, + track = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + GRC = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + HKG = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + cycleway = no_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + HUN = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + road = walking_speed, + living_street = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = walking_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + ISL = Sequence + { + foot = Sequence + { + highway = + { + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + track = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + IRL = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = no_speed, + footway = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + ITA = Sequence + { + foot = Sequence + { + highway = + { + path = walking_speed, + cycleway = no_speed, + footway = walking_speed, + pedestrian = walking_speed, + track = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + service = walking_speed, + tertiary = walking_speed, + secondary = walking_speed, + primary = walking_speed, + trunk = walking_speed, + motorway = no_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + living_street = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + NLD = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + service = walking_speed, + road = walking_speed, + track = walking_speed, + living_street = walking_speed, + path = walking_speed, + busway = no_speed, + bridleway = no_speed, + cycleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + NOR = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + service = walking_speed, + track = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + OMN = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + PHL = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + POL = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + service = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + ROU = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = no_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = no_speed, + footway = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + RUS = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + service = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = walking_speed, + footway = walking_speed, + footway_sidewalk = walking_speed, + footway_crossing = walking_speed, + steps = walking_speed, + road = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + track = walking_speed, + pier = walking_speed + } + } + }, + + SVK = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + road = walking_speed, + living_street = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + ESP = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + track = walking_speed, + living_street = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + service = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + SWE = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + service = walking_speed, + track = walking_speed, + path = walking_speed, + cycleway = walking_speed, + bridleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + busway = no_speed, + bus = no_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + CHE = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = no_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + track = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + THA = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + motorway_link = walking_speed, + trunk = walking_speed, + trunk_link = walking_speed, + primary = walking_speed, + primary_link = walking_speed, + secondary = walking_speed, + secondary_link = walking_speed, + tertiary = walking_speed, + tertiary_link = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + steps = walking_speed, + service = walking_speed, + track = walking_speed, + pier = walking_speed + } + } + }, + + TUR = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + UKR = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + track = walking_speed, + road = walking_speed, + living_street = walking_speed, + service = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = walking_speed, + steps = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + pier = walking_speed + } + } + }, + + GBR = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + pedestrian = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + road = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + }, + + USA = Sequence + { + foot = Sequence + { + highway = + { + motorway = no_speed, + trunk = walking_speed, + primary = walking_speed, + secondary = walking_speed, + tertiary = walking_speed, + unclassified = walking_speed, + residential = walking_speed, + living_street = walking_speed, + road = walking_speed, + pedestrian = walking_speed, + path = walking_speed, + bridleway = walking_speed, + cycleway = walking_speed, + footway = walking_speed, + primary_link = walking_speed, + secondary_link = walking_speed, + tertiary_link = walking_speed, + service = walking_speed, + track = walking_speed, + steps = walking_speed, + pier = walking_speed + } + } + } +} + + +function country_foot_data.inAccessSet(country) + if clist[country] then + return true + end + return false +end + +function country_foot_data.getCnameEntry(country) + if cnames[country] then + return cnames[country] + end + nob = string.gsub(country, ' ', '_') + if cnames[nob] then + return cnames[nob] + end + return false +end + +function country_foot_data.getAccessProfile(country, profile) + if clist[country] then + if countries[country][profile] then + return countries[country][profile] + end + end + return countries['Worldwide'][profile] +end + +return country_foot_data + diff --git a/profiles/lib/country_speeds.lua b/profiles/lib/country_speeds.lua new file mode 100644 index 000000000..12db0fc1d --- /dev/null +++ b/profiles/lib/country_speeds.lua @@ -0,0 +1,134 @@ +-- Assigns extra_speeds list based on location tag +-- based on reading https://wiki.openstreetmap.org/wiki/Key:motorroad +-- and https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access_restrictions +-- (esp #Alternative_ideas) +-- We treat all cases of motorroad="yes" as no access. +-- pass in way data and speed to set. +-- + +local Set = require('lib/set') +local Sequence = require('lib/sequence') +local country_foot_data = require('lib/country_foot_data') +local country_bicycle_data = require('lib/country_bicycle_data') +local country_vehicle_data = require('lib/country_vehicle_data') +local country_data = require('lib/country_data') +local Tags = require('lib/tags') + +local inspect = require('lib/inspect') + +local country_speeds = {} + +function country_speeds.inAccessSet(country) + return country_data.inAccessSet(country) +end + +function country_speeds.getCnameEntry(country) + return country_data.getCnameEntry(country) +end + +function country_speeds.getcountrytag(way) + local location = way:get_location_tag('iso_a3_eh') + if not location then + location = way:get_location_tag("iso_a3") + end + if not location then + location = way:get_location_tag("ISO_A3") + end + if not location then + countryname = way:get_location_tag("name_en") + if countryname then + location = country_speeds.getCnameEntry(countryname) + end + end + if country_data.inAccessSet(location) then + return location + end + return 'Worldwide' +end + +function country_speeds.getAccessProfile(data, profile) + local country = data.location + local prof = profile + if profile == 'foot' then + return country_foot_data.getAccessProfile(country, prof) + end + if profile == 'bicycle' then + return country_bicycle_data.getAccessProfile(country, prof) + end + if profile == 'vehicle' then + return country_vehicle_data.getAccessProfile(country, prof) + end + return false +end + +-- handle speed (excluding maxspeed) +function country_speeds.wayspeed(profile,way,result,data) + if result.forward_speed ~= -1 then + return -- abort if already set, eg. by a route + end + local key,value,speed +-- if (way) then +-- print('way=' .. way:id()) +-- end + + if profile.uselocationtags and profile.uselocationtags.countryspeeds then + -- check for location tags to handle speeds + local extra_speeds = country_speeds.getAccessProfile(data, profile.profile) + if extra_speeds then + key,value,speed = Tags.get_constant_by_key_value(way,extra_speeds) + else + key,value,speed = Tags.get_constant_by_key_value(way,profile.hwyspeeds) + end + if speed and speed ~= -1 then + result.forward_speed = speed + result.backward_speed = speed + else + -- print('way=' .. way:id() .. ' -1') + speed = false + end + else + key,value,speed = Tags.get_constant_by_key_value(way,profile.hwyspeeds) + end + + if speed then + -- set speed by way type + result.forward_speed = speed + result.backward_speed = speed + else + if profile.otherspeeds then + key,value,speed = Tags.get_constant_by_key_value(way,profile.otherspeeds) + end + end + + if speed then + -- set speed by way type + result.forward_speed = speed + result.backward_speed = speed + end + + if not speed then + -- Set the avg speed on ways that are marked accessible + if profile.access_tag_whitelist[data.forward_access] then + result.forward_speed = profile.default_speed + elseif data.forward_access and not profile.access_tag_blacklist[data.forward_access] then + result.forward_speed = profile.default_speed -- fallback to the avg speed if access tag is not blacklisted + elseif not data.forward_access and data.backward_access then + result.forward_mode = mode.inaccessible + end + + if profile.access_tag_whitelist[data.backward_access] then + result.backward_speed = profile.default_speed + elseif data.backward_access and not profile.access_tag_blacklist[data.backward_access] then + result.backward_speed = profile.default_speed -- fallback to the avg speed if access tag is not blacklisted + elseif not data.backward_access and data.forward_access then + result.backward_mode = mode.inaccessible + end + end + + if result.forward_speed == -1 and result.backward_speed == -1 and result.duration <= 0 then + return false + end +end + +return country_speeds + diff --git a/profiles/lib/country_vehicle_data.lua b/profiles/lib/country_vehicle_data.lua new file mode 100644 index 000000000..a4dead7e8 --- /dev/null +++ b/profiles/lib/country_vehicle_data.lua @@ -0,0 +1,1180 @@ +-- Assigns extra_speeds list based on location tag +-- based on reading https://wiki.openstreetmap.org/wiki/Key:motorroad +-- and https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access_restrictions +-- (esp #Alternative_ideas) +-- We treat all cases of motorroad="yes" as no access. +-- pass in way data and speed to set. +-- + +local Set = require('lib/set') +local Sequence = require('lib/sequence') + + + +country_vehicle_data = {} + +local no_speed = -1 + +local speeds = Sequence { + motorway = 90, + motorway_link = 45, + trunk = 85, + trunk_link = 40, + primary = 65, + primary_link = 30, + secondary = 55, + secondary_link = 25, + tertiary = 40, + tertiary_link = 20, + unclassified = 25, + residential = 25, + living_street = 10, + service = 15 + } + + + +local clist = Set +{ + 'Worldwide', + 'AUS', + 'AUT', + 'tyrol', + 'BLR', + 'BEL', + 'BRA', + 'CHN', + 'DNK', + 'FRA', + 'FIN', + 'DEU', + 'GRC', + 'HKG', + 'HUN', + 'ISL', + 'IRL', + 'ITA', + 'NLD', + 'NOR', + 'OMN', + 'PHL', + 'POL', + 'ROU', + 'RUS', + 'SVK', + 'ESP', + 'SWE', + 'CHE', + 'THA', + 'TUR', + 'UKR', + 'GBR', + 'USA' +} + +local cnames = Sequence +{ + Australia = "AUS", + Austria = "AUT", + Belarus = "BLR", + Belgium = "BEL", + Brazil = "BRA", + China = "CHN", + Denmark = "DNK", + France = "FRA", + Finland = "FIN", + Germany = "DEU", + Greece = "GRC", + Hong_Kong = "HKG", + Hungary = "HUN", + Iceland = "ISL", + Ireland = "IRL", + Italy = "ITA", + Netherlands = "NLD", + Norway = "NOR", + Oman = "OMN", + Philippines = "PHL", + Poland = "POL", + Romania = "ROU", + Russia = "RUS", + Slovakia = "SVK", + Spain = "ESP", + Sweden = "SWE", + Switzerland = "CHE", + Thailand = "THA", + Turkey = "TUR", + Ukraine = "UKR", + United_Kingdom = "GBR", + United_States_of_America = "USA" +} + +local countries = Sequence +{ + Worldwide = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + service = speeds.service + } + } + }, + + AUS = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + service = speeds.service + } + } + }, + + AUT = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + road = speeds.road, + living_street = speeds.living_street, + service = speeds.service, + track = speeds.track, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + tyrol = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + road = speeds.road, + living_street = speeds.living_street, + service = speeds.service, + track = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + BLR = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + service = speeds.service, + pedestrian = speeds.pedestrian, + track = speeds.track, + path = no_speed, + bridleway = speeds.bridleway, + cycleway = speeds.cycleway, + footway = speeds.footway, + footway_sidewalk = speeds.footway_sidewalk, + footway_crossing = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + BEL = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + track = speeds.track, + busway = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + BRA = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + road = speeds.road, + residential = speeds.residential, + living_street = speeds.living_street, + service = speeds.service, + track = speeds.track, + pedestrian = no_speed, + footway = no_speed, + cycleway = no_speed, + bridleway = no_speed, + path = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + CHN = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + service = speeds.service + } + } + }, + + DNK = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + track = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + FRA = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + track = speeds.track, + living_street = speeds.living_street, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = speeds.pedestrian, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + FIN = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + track = speeds.track, + path = speeds.path, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = speeds.pedestrian, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + DEU = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + service = speeds.service, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + track = speeds.track, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + GRC = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + service = speeds.service + } + } + }, + + HKG = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + cycleway = no_speed, + footway = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + HUN = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + road = speeds.road, + living_street = speeds.living_street, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + ISL = Sequence + { + vehicle = Sequence + { + highway = + { + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + track = speeds.track, + path = no_speed, + bridleway = speeds.bridleway, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + IRL = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + service = speeds.service + } + } + }, + + ITA = Sequence + { + vehicle = Sequence + { + highway = + { + path = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + track = speeds.track, + unclassified = speeds.unclassified, + residential = speeds.residential, + service = speeds.service, + tertiary = speeds.tertiary, + secondary = speeds.secondary, + primary = speeds.primary, + trunk = speeds.trunk, + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + living_street = speeds.living_street + } + } + }, + + NLD = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + service = speeds.service, + road = speeds.road, + track = speeds.track, + living_street = speeds.living_street, + path = no_speed, + busway = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed + } + } + }, + + NOR = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + service = speeds.service, + track = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + OMN = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + PHL = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + service = speeds.service + } + } + }, + + POL = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + service = speeds.service, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + ROU = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = speeds.pedestrian, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + service = speeds.service + } + } + }, + + RUS = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + service = speeds.service, + pedestrian = speeds.pedestrian, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = speeds.footway, + footway_sidewalk = speeds.footway_sidewalk, + footway_crossing = no_speed, + steps = speeds.steps, + road = speeds.road, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + SVK = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + road = speeds.road, + living_street = speeds.living_street, + pedestrian = speeds.pedestrian, + path = speeds.path, + bridleway = speeds.bridleway, + cycleway = speeds.cycleway, + footway = speeds.footway, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + ESP = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + track = speeds.track, + living_street = speeds.living_street, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + SWE = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + service = speeds.service, + track = speeds.track, + path = speeds.path, + cycleway = no_speed, + bridleway = no_speed, + footway = no_speed, + pedestrian = speeds.pedestrian, + busway = no_speed, + bus = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + CHE = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + track = speeds.track, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + THA = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + motorway_link = speeds.motorway_link, + trunk = speeds.trunk, + trunk_link = speeds.trunk_link, + primary = speeds.primary, + primary_link = speeds.primary_link, + secondary = speeds.secondary, + secondary_link = speeds.secondary_link, + tertiary = speeds.tertiary, + tertiary_link = speeds.tertiary_link, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + steps = no_speed, + service = speeds.service + } + } + }, + + TUR = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + UKR = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + track = speeds.track, + road = speeds.road, + living_street = speeds.living_street, + service = speeds.service, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + steps = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link + } + } + }, + + GBR = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + pedestrian = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + }, + + USA = Sequence + { + vehicle = Sequence + { + highway = + { + motorway = speeds.motorway, + trunk = speeds.trunk, + primary = speeds.primary, + secondary = speeds.secondary, + tertiary = speeds.tertiary, + unclassified = speeds.unclassified, + residential = speeds.residential, + living_street = speeds.living_street, + road = speeds.road, + pedestrian = no_speed, + path = no_speed, + bridleway = no_speed, + cycleway = no_speed, + footway = no_speed, + motorway_link = speeds.motorway_link, + trunk_link = speeds.trunk_link, + primary_link = speeds.primary_link, + secondary_link = speeds.secondary_link, + tertiary_link = speeds.tertiary_link, + service = speeds.service + } + } + } +} + + +function country_vehicle_data.inAccessSet(country) + if clist[country] then + return true + end + return false +end + +function country_vehicle_data.getCnameEntry(country) + if cnames[country] then + return cnames[country] + end + nob = string.gsub(country, ' ', '_') + if cnames[nob] then + return cnames[nob] + end + return false +end + +function country_vehicle_data.getAccessProfile(country, profile) + if clist[country] then + if countries[country][profile] then + return countries[country][profile] + end + end + return countries['Worldwide'][profile] +end + +return country_vehicle_data +