Actually add the examples
This commit is contained in:
parent
142e192ff9
commit
c98b434370
27 changed files with 1928 additions and 0 deletions
44
Examples/Format.md
Normal file
44
Examples/Format.md
Normal file
|
@ -0,0 +1,44 @@
|
|||
|
||||
# Functions
|
||||
|
||||
- `$funcName` indicates a builtin function
|
||||
- `#parameter` indicates a configurable parameter
|
||||
|
||||
A profile is a function which maps a set of tags onto a value. It is basically Haskell, except that functions can have _multiple_ types. During typechecking, some types will turn out not to be possible and they will dissappear, potentially fixing the implementation of the function itself.
|
||||
|
||||
# Injected tags
|
||||
|
||||
Aspects can use the following (extra) tags:
|
||||
|
||||
- `_direction` is the value to indicate if the traveller goes forward or backwards. It is not available when calculating the 'oneway' field
|
||||
- `access` will become the value calculated in the field `access` (not available to calculate access)
|
||||
- `oneway` will become the value calculated in the field `oneway` (not available to calculate access and speed)
|
||||
|
||||
|
||||
# Vehicle.json
|
||||
|
||||
- Metdata: these tags will be copied to the routerdb, but can not be used for routeplanning. A prime example is `name` (the streetname), as it is useful for routeplanning but very useful for navigation afterwards
|
||||
- vehicletypes: used for turn restrictions, legacy for use with itinero 1.0
|
||||
- defaults: a dictionary of `{"#paramName": "value"}`, used in determining the weight of an edge. note: the `#` has to be included
|
||||
- `access` is a field in the vehicle file. It should be an expression returning a string. If (and only if) this string is `no`, the way will be marked as not accessible and no more values will be calculated. All other values are regarded as being accessible. When calculated, the tag `access` with the calculated value is written into the tag table or the other aspects to use.
|
||||
- `oneway` is a field in the vehicle file. It should be an expression returning `both`, `with` or `against`.
|
||||
When calculated, the tag `oneway` is added to the tags for the other aspects to be calculated.
|
||||
- `speed`: an expression indicating how fast the vehicle can go there. It should take into account legal, practical and social aspects. An example expression could be `{"$min", ["$legal_maxspeed", "#defaultspeed"]}`
|
||||
|
||||
- `priorities`: a table of `{'#paramName', expression}` determining the priority (1/cost) of a way, per meter. The formula used is `paramName * expression + paramName0 * expression0 + ...` (`speed`, `access` and `oneway` can be used here as tags indicate the earlier defined respective aspects). Use a weight == 1 to get the shortest route or `$speed` to get the fastest route
|
||||
|
||||
# Calculating oneway and forward/backward speeds
|
||||
|
||||
There are two possibilities in order to calculate the possible direction of a traveller can go over an edge:
|
||||
|
||||
1) This can be indicated explicitely with the 'oneway'-field. If this expression returns `both`, the edge is traversable in two directions. If it is either `with` or `against`, then it is not
|
||||
2) This can be indicated with having a speed or factor which is equal to (or smaller then) 0, in conjunction with a `_direction=with` or `_direction=against` tag. Bicycle lanes are an excellent example for this: a `cycleway:right=yes; cycleway:left=no`, the speed and factor for `_direction=with` could be far greater then for `_direction=against`
|
||||
|
||||
Note that `_direction=with` and `_direction=against` are _not_ supported in Itinero1.0 profiles. For maximal compatibility and programming comfort, a mixture of both techniques should be used. For example, one aspect interpreting the legal onewayness in tandem with one aspect determining comfort by direction is optimal.
|
||||
|
||||
|
||||
# Pitfalls
|
||||
|
||||
"$all" should not be used together with a mapping: it checks if all _present_ keys return true or yes (or some other value); it does _not_ check that all the specified keys in the mapping are present.
|
||||
|
||||
For this, an additional 'mustHaveKeys' should be added added
|
1058
Examples/TypesAndFunctions.md
Normal file
1058
Examples/TypesAndFunctions.md
Normal file
File diff suppressed because it is too large
Load diff
75
Examples/bicycle/aspects/bicycle.comfort.json
Normal file
75
Examples/bicycle/aspects/bicycle.comfort.json
Normal file
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
"name": "bicycle.comfort",
|
||||
"description": "Gives a comfort factor for a road, purely based on physical aspects of the road, which is a bit subjective; this takes a bit of scnery into account with a preference for `railway=abandoned` and `towpath=yes`",
|
||||
"unit": "[0, 2]",
|
||||
"$default": 1,
|
||||
"value": {
|
||||
"$multiply": {
|
||||
"highway": {
|
||||
"cycleway": 1.2,
|
||||
"primary": 0.3,
|
||||
"secondary": 0.4,
|
||||
"tertiary": 0.5,
|
||||
"unclassified": 0.8,
|
||||
"track": 0.95,
|
||||
"residential": 1.0,
|
||||
"living_street": 1.1,
|
||||
"footway": 0.95,
|
||||
"path": 0.5,
|
||||
"construction": 0.5
|
||||
},
|
||||
"railway": {
|
||||
"abandoned": 2
|
||||
},
|
||||
"towpath": {
|
||||
"yes": 2
|
||||
},
|
||||
"cycleway": {
|
||||
"track": 1.2
|
||||
},
|
||||
"cyclestreet": {
|
||||
"yes": 1.1
|
||||
},
|
||||
"access": {
|
||||
"designated": 1.2,
|
||||
"dismount": 0.01
|
||||
},
|
||||
"bicycle:class":{
|
||||
"-3": 0.5,
|
||||
"-2": 0.7,
|
||||
"-1": 0.9,
|
||||
"0": 1,
|
||||
"1": 1.1,
|
||||
"2": 1.3,
|
||||
"3": 1.5
|
||||
},
|
||||
"surface": {
|
||||
"#": "The surface mapping heavily resembles the one in speed_factor, but it is not entirely the same",
|
||||
"paved": 0.99,
|
||||
"concrete:lanes": 0.8,
|
||||
"concrete:plates": 1.0,
|
||||
"sett": 0.9,
|
||||
"unhewn_cobblestone": 0.75,
|
||||
"cobblestone": 0.8,
|
||||
"unpaved": 0.75,
|
||||
"compacted": 0.95,
|
||||
"fine_gravel": 0.7,
|
||||
"gravel": 0.9,
|
||||
"dirt": 0.6,
|
||||
"earth": 0.6,
|
||||
"grass": 0.6,
|
||||
"grass_paver": 0.9,
|
||||
"ground": 0.7,
|
||||
"sand": 0.5,
|
||||
"woodchips": 0.5,
|
||||
"snow": 0.5,
|
||||
"pebblestone": 0.5,
|
||||
"mud": 0.4
|
||||
},
|
||||
"route": {
|
||||
"#": "Discourage ferries",
|
||||
"ferry": 0.01
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
80
Examples/bicycle/aspects/bicycle.legal_access.json
Normal file
80
Examples/bicycle/aspects/bicycle.legal_access.json
Normal file
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
"name": "bicycle.legal_access",
|
||||
"description": "Gives, for each type of highway, whether or not a normal bicycle can enter legally.\nNote that legal access is a bit 'grey' in the case of roads marked private and permissive, in which case these values are returned ",
|
||||
"unit": "'designated': Access is allowed and even specifically for bicycles\n'yes': bicycles are allowed here\n'permissive': bicycles are allowed here, but this might be a private road or service where usage is allowed, but could be retracted one day by the owner\n'dismount': cycling here is not allowed, but walking with the bicycle is\n'destination': cycling is allowed here, but only if truly necessary to reach the destination\n'private': this is a private road, only go here if the destination is here\n'no': do not cycle here",
|
||||
"$default": "no",
|
||||
"value": {
|
||||
"$firstMatchOf": [
|
||||
"anyways:bicycle",
|
||||
"anyways:access",
|
||||
"anyways:construction",
|
||||
"bicycle",
|
||||
"access",
|
||||
"service",
|
||||
"highway"
|
||||
],
|
||||
"value": {
|
||||
"access": {
|
||||
"no": "no",
|
||||
"customers": "private",
|
||||
"private": "private",
|
||||
"#": "Note that we leave out 'yes', as it is meaningless - the default assumption is that everything on OSM is accessible! This forces to fall through to the road type, in order to force `highway=motorway; access=yes` as not to trigger access for bicycles",
|
||||
"permissive": "permissive",
|
||||
"destination": "destination",
|
||||
"delivery": "destination",
|
||||
"service": "destination",
|
||||
"permit": "destination"
|
||||
},
|
||||
"highway": {
|
||||
"cycleway": "designated",
|
||||
"residential": "yes",
|
||||
"living_street": "yes",
|
||||
"service": "yes",
|
||||
"services": "yes",
|
||||
"track": "yes",
|
||||
"crossing": "dismount",
|
||||
"footway": "dismount",
|
||||
"pedestrian": "dismount",
|
||||
"corridor": "dismount",
|
||||
"construction": "dismount",
|
||||
"steps": "dismount",
|
||||
"path": "yes",
|
||||
"primary": "yes",
|
||||
"primary_link": "yes",
|
||||
"secondary": "yes",
|
||||
"secondary_link": "yes",
|
||||
"tertiary": "yes",
|
||||
"tertiary_link": "yes",
|
||||
"unclassified": "yes",
|
||||
"road": "yes"
|
||||
},
|
||||
"service": {
|
||||
"parking_aisle": "permissive",
|
||||
"driveway": "private",
|
||||
"alley": "yes",
|
||||
"bus": "no"
|
||||
},
|
||||
"bicycle": {
|
||||
"yes": "yes",
|
||||
"no": "no",
|
||||
"use_sidepath": "no",
|
||||
"designated": "designated",
|
||||
"permissive": "permissive",
|
||||
"private": "private",
|
||||
"official": "designated",
|
||||
"dismount": "dismount",
|
||||
"permit": "destination"
|
||||
},
|
||||
|
||||
"anyways:bicycle": "$id",
|
||||
"anyways:access": {
|
||||
"no": "no",
|
||||
"destination": "destination",
|
||||
"yes": "yes"
|
||||
},
|
||||
"anyways:construction": {
|
||||
"yes": "no"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13
Examples/bicycle/aspects/bicycle.network_is_nodenetwork.json
Normal file
13
Examples/bicycle/aspects/bicycle.network_is_nodenetwork.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "bicycle.network_is_nodenetwork",
|
||||
"description": "Returns true if the highway is part of a [cycle node network](https://wiki.openstreetmap.org/wiki/Cycle_Node_Network_Tagging)",
|
||||
"$memberOf": {
|
||||
"$mustMatch": {
|
||||
"type": "route",
|
||||
"route": "bicycle",
|
||||
"state": {"$not": "proposed"},
|
||||
"network:type": "node_network"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
54
Examples/bicycle/aspects/bicycle.oneway.json
Normal file
54
Examples/bicycle/aspects/bicycle.oneway.json
Normal file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"name": "bicycle.oneway",
|
||||
"description": "Determines wether or not a bicycle can go in both ways in this street, and if it is oneway, in what direction",
|
||||
"unit": "both: direction is allowed in both direction\nwith: this is a oneway street with direction allowed with the grain of the way\nagainst: oneway street with direction against the way",
|
||||
"$default": "both",
|
||||
"value": {
|
||||
"$firstMatchOf": [
|
||||
"oneway:bicycle",
|
||||
"junction",
|
||||
"cycleway",
|
||||
"cycleway:left",
|
||||
"oneway"
|
||||
],
|
||||
"value": {
|
||||
"oneway": {
|
||||
"yes": "with",
|
||||
"no": "both",
|
||||
"1": "with",
|
||||
"-1": "against"
|
||||
},
|
||||
"oneway:bicycle": {
|
||||
"yes": "with",
|
||||
"no": "both",
|
||||
"1": "with",
|
||||
"-1": "against"
|
||||
},
|
||||
"junction": {
|
||||
"roundabout": "with"
|
||||
},
|
||||
"cycleway": {
|
||||
"right": "against",
|
||||
"#": "We ignore 'no' as it has no meaning and is the default assumption",
|
||||
"opposite_lane": "both",
|
||||
"track": "both",
|
||||
"lane": "both",
|
||||
"opposite": "both",
|
||||
"opposite_share_busway": "both",
|
||||
"opposite_track": "both"
|
||||
},
|
||||
"cycleway:left": {
|
||||
"no": "with",
|
||||
"none": "with",
|
||||
"yes": "both",
|
||||
"lane": "both",
|
||||
"track": "both",
|
||||
"shared_lane": "both",
|
||||
"share_busway": "both",
|
||||
"opposite_lane": "both",
|
||||
"opposite_track": "both",
|
||||
"opposite": "both"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
84
Examples/bicycle/aspects/bicycle.safety.json
Normal file
84
Examples/bicycle/aspects/bicycle.safety.json
Normal file
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
"name": "bicycle.safety",
|
||||
"description": "Determines how safe a cyclist feels on a certain road, mostly based on car pressure. This is quite a subjective measurem",
|
||||
"unit": "safety",
|
||||
"$default": 1,
|
||||
"value": {
|
||||
"$multiply": {
|
||||
"access": {
|
||||
"#": "access=no and access 'destination' implies this access for cars too and is a bonus!",
|
||||
"no": 1.5,
|
||||
"destination": 1.4,
|
||||
"dismount": 0.2,
|
||||
"designated": 1.5
|
||||
},
|
||||
"bicycle:class":{
|
||||
"-3": 0.5,
|
||||
"-2": 0.7,
|
||||
"-1": 0.9,
|
||||
"0": 1,
|
||||
"1": 1.1,
|
||||
"2": 1.3,
|
||||
"3": 1.5
|
||||
},
|
||||
"motor_vehicle": {
|
||||
"no": 1.5,
|
||||
"destination": 1.4
|
||||
},
|
||||
"foot": {
|
||||
"designated": 0.95
|
||||
},
|
||||
"bicycle": {
|
||||
"designated": 1.5
|
||||
},
|
||||
"cyclestreet": {
|
||||
"yes": 1.5
|
||||
},
|
||||
"towpath": {
|
||||
"yes": 1.1
|
||||
},
|
||||
"designation": {
|
||||
"towpath": 1.5
|
||||
},
|
||||
"highway": {
|
||||
"cycleway": 1.0,
|
||||
"primary": 0.1,
|
||||
"secondary": 0.4,
|
||||
"tertiary": 0.5,
|
||||
"unclassified": 0.8,
|
||||
"track": 0.95,
|
||||
"residential": 0.9,
|
||||
"living_street": 0.95,
|
||||
"footway": 0.95,
|
||||
"path": 0.9,
|
||||
"#": "A road under construction often has various objects laying around, rough edges, .... -> chance to fall",
|
||||
"construction": 0.6
|
||||
},
|
||||
"cycleway": {
|
||||
"#": "A distinct cycleway _always_ makes the road safer for cyclists, even if it is but a small lane. The default assumption is 'no', no cycleway, in which case the safety feeling is not improved",
|
||||
"yes": 1.15,
|
||||
"lane": 1.15,
|
||||
"shared": 1.03,
|
||||
"shared_lane": 1.03,
|
||||
"share_busway": 1.05,
|
||||
"track": 1.5
|
||||
},
|
||||
"cycleway:left": {
|
||||
"yes": 1.15,
|
||||
"lane": 1.15,
|
||||
"shared": 1.03,
|
||||
"shared_lane": 1.03,
|
||||
"share_busway": 1.05,
|
||||
"track": 1.5
|
||||
},
|
||||
"cycleway:right": {
|
||||
"yes": 1.15,
|
||||
"lane": 1.15,
|
||||
"shared": 1.03,
|
||||
"shared_lane": 1.03,
|
||||
"share_busway": 1.05,
|
||||
"track": 1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
69
Examples/bicycle/aspects/bicycle.speed_factor.json
Normal file
69
Examples/bicycle/aspects/bicycle.speed_factor.json
Normal file
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"name": "bicycle.speed_factor",
|
||||
"description": "Calculates a speed factor for bicycles based on physical features, e.g. a sand surface will slow a cyclist down; going over pedestrian areas even more, ...",
|
||||
"$multiply": {
|
||||
"access": {
|
||||
"#": "We have to go by foot. Default speed of 20km/h * 0.15 = 3km/h",
|
||||
"dismount": 0.15
|
||||
},
|
||||
"highway": {
|
||||
"#": "A small forest path is typically slow",
|
||||
"path": 0.5,
|
||||
"#": "an unmaintained track (in Belgium: tractor path) is slower as well",
|
||||
"track": 0.7,
|
||||
"#": "A road under construction slows one down, despite (normally) already being dismount",
|
||||
"construction": 0.5,
|
||||
"steps": 0.1
|
||||
},
|
||||
"ramp:bicycle": {
|
||||
"#": "These are stairs (highway=steps), but there is a bicycle ramp, so we go a little bit faster",
|
||||
"yes": 3
|
||||
},
|
||||
"surface": {
|
||||
"paved": 0.99,
|
||||
"asphalt": 1,
|
||||
"concrete": 1,
|
||||
"metal": 1,
|
||||
"wood": 1,
|
||||
"concrete:lanes": 0.95,
|
||||
"concrete:plates": 1,
|
||||
"paving_stones": 1,
|
||||
"sett": 0.9,
|
||||
"unhewn_cobblestone": 0.75,
|
||||
"cobblestone": 0.8,
|
||||
"unpaved": 0.75,
|
||||
"compacted": 0.99,
|
||||
"fine_gravel": 0.99,
|
||||
"gravel": 0.9,
|
||||
"dirt": 0.6,
|
||||
"earth": 0.6,
|
||||
"grass": 0.6,
|
||||
"grass_paver": 0.9,
|
||||
"ground": 0.7,
|
||||
"sand": 0.5,
|
||||
"woodchips": 0.5,
|
||||
"snow": 0.5,
|
||||
"pebblestone": 0.5,
|
||||
"mud": 0.4
|
||||
},
|
||||
"tracktype": {
|
||||
"grade1": 0.99,
|
||||
"grade2": 0.8,
|
||||
"grade3": 0.6,
|
||||
"grade4": 0.3,
|
||||
"grade5": 0.1
|
||||
},
|
||||
"incline": {
|
||||
"up": 0.75,
|
||||
"down": 1.25,
|
||||
"0": 1,
|
||||
"0%": 1,
|
||||
"10%": 0.9,
|
||||
"-10%": 1.1,
|
||||
"20%": 0.8,
|
||||
"-20%": 1.2,
|
||||
"30%": 0.7,
|
||||
"-30%": 1.3
|
||||
}
|
||||
}
|
||||
}
|
95
Examples/bicycle/bicycle.json
Normal file
95
Examples/bicycle/bicycle.json
Normal file
|
@ -0,0 +1,95 @@
|
|||
{
|
||||
"name": "bicycle",
|
||||
"description": "Profile for a normal bicycle",
|
||||
"vehicletypes": [
|
||||
"vehicle",
|
||||
"bicycle"
|
||||
],
|
||||
"metadata": [
|
||||
"name",
|
||||
"bridge",
|
||||
"tunnel",
|
||||
"colour",
|
||||
"cycle_network_colour",
|
||||
"cycle_network_ref",
|
||||
"ref",
|
||||
"status",
|
||||
"network"
|
||||
],
|
||||
"access": "$bicycle.legal_access",
|
||||
"oneway": "$bicycle.oneway",
|
||||
"speed": {
|
||||
"$max": [
|
||||
"$ferry_speed",
|
||||
{
|
||||
"$min": [
|
||||
"$legal_maxspeed_be",
|
||||
"#maxspeed",
|
||||
{
|
||||
"$multiply": [
|
||||
"#defaultSpeed",
|
||||
"$bicycle.speed_factor"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"priority": {
|
||||
"#comfort": "$bicycle.comfort",
|
||||
"#safety": "$bicycle.safety",
|
||||
"#nodeNetworkScore": "$bicycle.network_is_nodenetwork",
|
||||
"#timeNeeded": "$speed",
|
||||
"#distance": "$distance",
|
||||
"#trespassingPenalty": "$clean_permission_score",
|
||||
"#leastSafetyPenalty": {
|
||||
"$multiply": [
|
||||
"$speed",
|
||||
{
|
||||
"$atleast": "#leastSafetyRequired",
|
||||
"f": "$bicycle.safety",
|
||||
"then": 0,
|
||||
"else": -1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"defaults": {
|
||||
"#defaultSpeed": 15,
|
||||
"#maxspeed": 30,
|
||||
"#timeNeeded": 0,
|
||||
"#distance": 0,
|
||||
"#comfort": 0,
|
||||
"#safety": 0,
|
||||
"#operatorNetworkScore": 0,
|
||||
"#networkOperator": [],
|
||||
"#cycleHighwayNetworkScore": 0,
|
||||
"#nodeNetworkScore": 0,
|
||||
"#bicycleNetworkScore": 0,
|
||||
"#trespassingPenalty": 15,
|
||||
"#": "This isn't a weight, but is used as cut-off in 'leastSafetyPenalty'",
|
||||
"#leastSafetyRequired": 0.11,
|
||||
"#leastSafetyPenalty": 2
|
||||
},
|
||||
"behaviours": {
|
||||
"fastest": {
|
||||
"description": "The fastest route to your destination",
|
||||
"#timeNeeded": 1,
|
||||
"#leastSafetyPenalty": 2
|
||||
},
|
||||
"shortest": {
|
||||
"description": "The shortest route, independent of of speed",
|
||||
"#distance": 1,
|
||||
"#leastSafetyPenalty": 2
|
||||
},
|
||||
"comfort": {
|
||||
"description": "A comfortable route preferring well-paved roads, smaller roads and a bit of scenery at the cost of speed",
|
||||
"#comfort": 1
|
||||
},
|
||||
"node_network": {
|
||||
"description": "A route following the recreational node network. Might make detours",
|
||||
"#nodeNetworkScore": 10,
|
||||
"#safety": 1
|
||||
}
|
||||
}
|
||||
}
|
18
Examples/bicycle/tests/bicycle.comfort.test.csv
Normal file
18
Examples/bicycle/tests/bicycle.comfort.test.csv
Normal file
|
@ -0,0 +1,18 @@
|
|||
expected,highway,foot,bicycle,cyclestreet,cycleway,cycleway:right,surface,railway,towpath
|
||||
1,,,,,,,,,
|
||||
1,residential,,,,,,,,
|
||||
1.1,residential,,,yes,,,,,
|
||||
1.2,cycleway,,,,,,,,
|
||||
1.2,cycleway,designated,,,,,,,
|
||||
0.5,path,designated,designated,,,,,,
|
||||
0.5,path,,designated,,,,,,
|
||||
0.95,footway,designated,,,,,,,
|
||||
0.3,primary,,,,no,,,,
|
||||
0.3,primary,,,,yes,,,,
|
||||
0.36,primary,,,,track,,,,
|
||||
0.4,secondary,,,,lane,,,,
|
||||
0.4,secondary,,,,,lane,asphalt,,
|
||||
1.1,residential,,,yes,,,asphalt,,
|
||||
2,,,,,,,,abandoned,
|
||||
2,,,,,,,,,yes
|
||||
4,,,,,,,,abandoned,yes
|
|
14
Examples/bicycle/tests/bicycle.fastest.behaviour_test.csv
Normal file
14
Examples/bicycle/tests/bicycle.fastest.behaviour_test.csv
Normal file
|
@ -0,0 +1,14 @@
|
|||
access,oneway,speed,priority,highway,bicycle,surface,cycleway:left,oneway,oneway:bicycle,access,maxspeed,junction
|
||||
no,both,0,0,,,,,,,,,
|
||||
designated,both,15,15,cycleway,,,,,,,,
|
||||
no,both,15,-15,primary,,,,,,,,
|
||||
no,both,15,-15,primary,yes,,,,,,,
|
||||
yes,both,15,15,residential,,,,,,,,
|
||||
yes,both,13.5,13.5,residential,yes,sett,,,,,,
|
||||
dismount,both,2.25,2.25,pedestrian,,,,,,,,
|
||||
yes,both,15,15,pedestrian,yes,,,,,,,
|
||||
yes,both,15,15,unclassified,,,track,yes,no,,,
|
||||
yes,both,15,15,service,,,,,,,,
|
||||
yes,both,15,15,tertiary,,,,,,yes,50,
|
||||
yes,with,15,15,residential,,,,,,,,roundabout
|
||||
dismount,both,2.25,2.25,footway,dismount
|
Can't render this file because it has a wrong number of fields in line 14.
|
22
Examples/bicycle/tests/bicycle.legal_access.test.csv
Normal file
22
Examples/bicycle/tests/bicycle.legal_access.test.csv
Normal file
|
@ -0,0 +1,22 @@
|
|||
expected,highway,bicycle,access,anyways:access,cycleway:right,cycleway
|
||||
no,,,,,,
|
||||
no,,,no,,,
|
||||
yes,,yes,no,,,
|
||||
yes,path,,,,,
|
||||
yes,pedestrian,yes,,,,
|
||||
dismount,pedestrian,,,,,
|
||||
designated,cycleway,,,,,
|
||||
destination,residential,,destination,,,
|
||||
private,residential,,private,,,
|
||||
designated,residential,designated,,,,
|
||||
designated,motorway,designated,,,,
|
||||
no,residential,use_sidepath,,,,
|
||||
yes,residential,,no,yes,,
|
||||
yes,primary,,,,,
|
||||
yes,primary,,,,yes,
|
||||
yes,primary,,,,,yes
|
||||
yes,secondary,,,,track,
|
||||
destination,service,,destination,,,
|
||||
no,residential,use_sidepath,,,,
|
||||
yes,tertiary,,,,,no
|
||||
dismount,construction,,,,,
|
|
|
@ -0,0 +1,6 @@
|
|||
access,oneway,speed,priority,highway,_relation:bicycle.network_is_bicycle_network
|
||||
no,,,,,
|
||||
designated,both,15,1.5,cycleway,
|
||||
designated,both,15,4.5,cycleway,yes
|
||||
yes,both,15,0.9,residential,
|
||||
yes,both,15,3.9,residential,yes
|
|
19
Examples/bicycle/tests/bicycle.oneway.test.csv
Normal file
19
Examples/bicycle/tests/bicycle.oneway.test.csv
Normal file
|
@ -0,0 +1,19 @@
|
|||
expected,highway,oneway,oneway:bicycle,junction,cycleway,cycleway:right,cycleway:left
|
||||
both,,,,,,,
|
||||
both,,no,,,,,
|
||||
with,,no,yes,,,,
|
||||
with,,,,roundabout,,,
|
||||
both,,yes,,,opposite,,
|
||||
against,,yes,-1,,,,
|
||||
with,residential,yes,,,,,
|
||||
both,residential,no,,,,,
|
||||
both,residential,yes,no,,,,
|
||||
with,residential,,,roundabout,,,
|
||||
both,residential,,no,roundabout,,,
|
||||
against,residential,,-1,,,,
|
||||
both,residential,invalidKey,no,,,,
|
||||
with,secondary,yes,,,,track,
|
||||
both,secondary,yes,,,,,track
|
||||
both,secondary,yes,,,track,,
|
||||
with,,yes,,,,,no
|
||||
both,residential,yes,,,,,lane
|
|
13
Examples/bicycle/tests/bicycle.safety.test.csv
Normal file
13
Examples/bicycle/tests/bicycle.safety.test.csv
Normal file
|
@ -0,0 +1,13 @@
|
|||
expected,highway,cycleway,cyclestreet,foot,bicycle,cycleway:right,access
|
||||
0.1,primary,no,,,,,
|
||||
0.115,primary,yes,,,,,
|
||||
0.15,primary,track,,,,,
|
||||
0.46,secondary,lane,,,,,
|
||||
0.9,residential,,,,,,
|
||||
1.5,cycleway,,,,,,designated
|
||||
1.35,residential,,yes,,,,
|
||||
0.95,cycleway,,,designated,,,
|
||||
0.9025,footway,,,designated,,,
|
||||
1.2825,path,,,designated,designated,,
|
||||
1.35,path,,,,designated,,
|
||||
0.46,secondary,,,,,lane,
|
|
|
@ -0,0 +1,5 @@
|
|||
access,oneway,speed,priority,highway,surface
|
||||
no,both,0,0,,
|
||||
designated,both,15,1,cycleway,
|
||||
yes,both,5.25,1,path,ground
|
||||
no,both,15,-29,primary,
|
|
13
Examples/bicycle/tests/bicycle.speed_factor.test.csv
Normal file
13
Examples/bicycle/tests/bicycle.speed_factor.test.csv
Normal file
|
@ -0,0 +1,13 @@
|
|||
expected,incline,surface,highway,access
|
||||
1,,,,
|
||||
1,,,residential,
|
||||
0.75,up,,residential,
|
||||
1.25,down,,residential,
|
||||
0.3,up,mud,residential,
|
||||
1.125,down,sett,residential,
|
||||
0.675,up,sett,residential,
|
||||
0.9,,sett,residential,
|
||||
1,,asphalt,residential,
|
||||
0.15,,,residential,dismount
|
||||
0.0315,up,mud,track,dismount
|
||||
0.9,,sett,primary,
|
|
12
Examples/general/clean_permission_score.json
Normal file
12
Examples/general/clean_permission_score.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "clean_permission_score",
|
||||
"description": "Gives 0 on private roads, 0.1 on destination-only roads, and 0.9 on permissive roads; gives 1 by default. This helps to select roads with no access retrictions on them",
|
||||
"$default": 0,
|
||||
"value": {
|
||||
"access": {
|
||||
"private": -50,
|
||||
"destination": -3,
|
||||
"permissive": -1
|
||||
}
|
||||
}
|
||||
}
|
5
Examples/general/clean_permission_score.test.csv
Normal file
5
Examples/general/clean_permission_score.test.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
expected,access
|
||||
0,yes
|
||||
-1,permissive
|
||||
-50,private
|
||||
0,qmsldkfjqsmldkfj
|
|
46
Examples/general/ferry_speed.json
Normal file
46
Examples/general/ferry_speed.json
Normal file
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"name": "ferry_speed",
|
||||
"description": "Gives the expected speed for a ferry. This includes the time needed to board and the expected waiting time (if duration is present). This uses the tag '_length', which is expected to be added by the preprocessing-step.",
|
||||
"unit": "km/h",
|
||||
"value": {
|
||||
"$ifDotted": {
|
||||
"route": {
|
||||
"ferry": "yes"
|
||||
}
|
||||
},
|
||||
"then": {
|
||||
"#": "(length (m) / (duration (minutes) + 5 minutes slack)) * 0.06 minutes/kilometer",
|
||||
"$multiply": [
|
||||
{
|
||||
"#": "The default value is chosen so that it defaults to 1km/h",
|
||||
"$default": 83.33333333333333,
|
||||
"value": {
|
||||
"_length": "$parse"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$inv": {
|
||||
"$sum": [
|
||||
{
|
||||
"duration": "$parse"
|
||||
},
|
||||
{
|
||||
"$multiply": [
|
||||
{
|
||||
"#": "Time needed to get on. We assume a continous ferry (pull it your self) which takes a few minutes to be free. If an interval is specified, we take a quarter of the interval as we assume that people will take into account the schedule",
|
||||
"$default": 20,
|
||||
"value": {
|
||||
"interval": "$parse"
|
||||
}
|
||||
},
|
||||
0.2
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
0.06
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
9
Examples/general/ferry_speed.test.csv
Normal file
9
Examples/general/ferry_speed.test.csv
Normal file
|
@ -0,0 +1,9 @@
|
|||
expected,route,duration,interval,_length,comment
|
||||
1.25,ferry,,,
|
||||
2,ferry,26,,1000,26 minutes duration + 4 minutes to get on is 30 minutes total for one kilometer -> 2 km/h
|
||||
4,ferry,11,,1000,10 minutes duration + 4 minutes to get on is 15 minutes total for one kilometer -> 4km/h
|
||||
null,,,,Ferry is not set
|
||||
21.465,ferry,00:16,,7155,Waterbus SintAnna-Zwijndrecht - osm.org/way/632117702
|
||||
19.513636363636365,ferry,00:16,00:30,7155,Waterbus SintAnna-Zwijndrecht - osm.org/way/632117702
|
||||
10.7325,ferry,00:16,2:00,7155,Non-regular waterbus which goes every two hours. Expected time ppl will wait: 24minutes + 16minutes faring duration = 40minutes for 7km = ~9km/h
|
||||
30,ferry,0:,0:1,100,
|
|
42
Examples/general/legal_maxspeed_be.json
Normal file
42
Examples/general/legal_maxspeed_be.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"name": "legal_maxspeed_be",
|
||||
"description": "Gives, for each type of highway, which the default legal maxspeed is in Belgium. This file is intended to be reused for in all vehicles, from pedestrian to car. In some cases, a legal maxspeed is not really defined (e.g. on footways). In that case, a socially acceptable speed should be taken (e.g.: a bicycle on a pedestrian path will go say around 12km/h)",
|
||||
"unit": "km/h",
|
||||
"$default": 30,
|
||||
"value": {
|
||||
"$firstMatchOf": [
|
||||
"maxspeed",
|
||||
"designation",
|
||||
"highway"
|
||||
],
|
||||
"value": {
|
||||
"maxspeed": "$parse",
|
||||
"highway": {
|
||||
"cycleway": 30,
|
||||
"footway": 20,
|
||||
"crossing": 20,
|
||||
"pedestrian": 15,
|
||||
"path": 15,
|
||||
"corridor": 5,
|
||||
"residential": 30,
|
||||
"living_street": 20,
|
||||
"service": 30,
|
||||
"services": 30,
|
||||
"track": 50,
|
||||
"unclassified": 50,
|
||||
"road": 50,
|
||||
"motorway": 120,
|
||||
"motorway_link": 120,
|
||||
"primary": 90,
|
||||
"primary_link": 90,
|
||||
"secondary": 50,
|
||||
"secondary_link": 50,
|
||||
"tertiary": 50,
|
||||
"tertiary_link": 50
|
||||
},
|
||||
"designation": {
|
||||
"towpath": 30
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
5
Examples/general/legal_maxspeed_be.test.csv
Normal file
5
Examples/general/legal_maxspeed_be.test.csv
Normal file
|
@ -0,0 +1,5 @@
|
|||
expected,highway,maxspeed
|
||||
30,,
|
||||
30,residential,
|
||||
50,secondary,
|
||||
70,secondary,70
|
|
78
Examples/pedestrian/aspects/pedestrian.legal_access.json
Normal file
78
Examples/pedestrian/aspects/pedestrian.legal_access.json
Normal file
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"name": "pedestrian.legal_access",
|
||||
"description": "Gives, for each type of highway, whether or not someone can enter legally.\nNote that legal access is a bit 'grey' in the case of roads marked private and permissive, in which case these values are returned ",
|
||||
"unit": "'designated': Access is allowed and even specifically for pedestrian\n'yes': pedestrians are allowed here\n'permissive': pedestrians are allowed here, but this might be a private road or service where usage is allowed, but could be retracted one day by the owner\n'destination': walking is allowed here, but only if truly necessary to reach the destination (e.g. a service road)\n'private': this is a private road, only go here if the destination is here\n'no': do not walk here",
|
||||
"$default": "no",
|
||||
"value": {
|
||||
"$firstMatchOf": [
|
||||
"anyways:foot",
|
||||
"anyways:access",
|
||||
"anyways:construction",
|
||||
"foot",
|
||||
"access",
|
||||
"service",
|
||||
"highway"
|
||||
],
|
||||
"value": {
|
||||
"access": {
|
||||
"no": "no",
|
||||
"customers": "private",
|
||||
"private": "private",
|
||||
"#": "Note that we leave out 'yes', as it is meaningless - the default assumption is that everything on OSM is accessible! This forces to fall through to the road type, in order to force `highway=motorway; access=yes` as not to trigger access for bicycles",
|
||||
"permissive": "permissive",
|
||||
"destination": "destination",
|
||||
"delivery": "destination",
|
||||
"service": "destination",
|
||||
"permit": "destination"
|
||||
},
|
||||
"highway": {
|
||||
"pedestrian": "designated",
|
||||
"footway": "designated",
|
||||
"living_street": "designated",
|
||||
"steps": "yes",
|
||||
"corridor": "designated",
|
||||
"residential": "yes",
|
||||
"service": "yes",
|
||||
"services": "yes",
|
||||
"track": "yes",
|
||||
"crossing": "yes",
|
||||
"construction": "permissive",
|
||||
"path": "yes",
|
||||
"primary": "yes",
|
||||
"primary_link": "yes",
|
||||
"secondary": "yes",
|
||||
"secondary_link": "yes",
|
||||
"tertiary": "yes",
|
||||
"tertiary_link": "yes",
|
||||
"unclassified": "yes",
|
||||
"road": "yes"
|
||||
},
|
||||
"service": {
|
||||
"parking_aisle": "permissive",
|
||||
"driveway": "private",
|
||||
"alley": "yes",
|
||||
"bus": "no"
|
||||
},
|
||||
"foot": {
|
||||
"yes": "yes",
|
||||
"no": "no",
|
||||
"use_sidepath": "no",
|
||||
"designated": "designated",
|
||||
"permissive": "permissive",
|
||||
"private": "private",
|
||||
"official": "designated",
|
||||
"dismount": "dismount",
|
||||
"permit": "destination"
|
||||
},
|
||||
"anyways:foot": "$id",
|
||||
"anyways:access": {
|
||||
"no": "no",
|
||||
"destination": "destination",
|
||||
"yes": "yes"
|
||||
},
|
||||
"anyways:construction": {
|
||||
"yes": "no"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
40
Examples/pedestrian/pedestrian.json
Normal file
40
Examples/pedestrian/pedestrian.json
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"name": "pedestrian",
|
||||
"description": "Profile for someone who is walking",
|
||||
"vehicletypes": [
|
||||
"vehicle",
|
||||
"foot"
|
||||
],
|
||||
"metadata": [
|
||||
"name",
|
||||
"bridge",
|
||||
"tunnel",
|
||||
"colour",
|
||||
"ref",
|
||||
"status",
|
||||
"network"
|
||||
],
|
||||
"access": "$pedestrian.legal_access",
|
||||
"oneway": "both",
|
||||
"speed": "#defaultSpeed",
|
||||
"priority": {
|
||||
"#timeNeeded": "$speed",
|
||||
"#distance": "$distance",
|
||||
"#trespassingPenalty": "$clean_permission_score"
|
||||
},
|
||||
"defaults": {
|
||||
"#defaultSpeed": 4,
|
||||
"#maxspeed": 6,
|
||||
"#timeNeeded": 0,
|
||||
"#distance": 0,
|
||||
"#slow_road_preference": 0,
|
||||
"#trespassingPenalty": 1
|
||||
},
|
||||
"behaviours": {
|
||||
"shortest": {
|
||||
"description": "The shortest route, independent of of speed",
|
||||
"#distance": 1,
|
||||
"#leastSafetyPenalty": 2
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
expected,highway,foot,access,anyways:access,cycleway:right,cycleway
|
||||
no,,,,,,
|
||||
yes,residential,
|
||||
designated,pedestrian
|
|
|
@ -0,0 +1,5 @@
|
|||
access,oneway,speed,priority,highway
|
||||
no,,,,,
|
||||
designated,both,4,2,pedestrian,
|
||||
designated,both,4,1.8,footway
|
||||
yes,both,4,1,residential,
|
|
Loading…
Add table
Add a link
Reference in a new issue