Merge remote-tracking branch 'abrensch/master'

This commit is contained in:
poutnikl 2019-09-10 15:21:27 +02:00
commit 2a4bc8a9a5
26 changed files with 769 additions and 261 deletions

View file

@ -32,6 +32,8 @@ assign initialcost switch route=ferry 20000 0
#
# calculate logical car access
#
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign caraccess
switch motorcar=
switch motor_vehicle=
@ -44,7 +46,7 @@ assign caraccess
switch highway=tertiary|tertiary_link 1
switch highway=unclassified 1
switch route=ferry 1
switch highway=residential|living_street 1
switch isresidentialorliving 1
switch highway=service 1
0
access=yes|permissive|designated|destination
@ -104,7 +106,7 @@ assign maxspeed_implicit =
switch highway=unclassified 50
switch route=ferry 10
switch highway=bridleway 10
switch highway=residential|living_street 30
switch isresidentialorliving 30
switch highway=service 30
switch highway=track|road|path switch tracktype=grade1 30 5
0
@ -148,7 +150,7 @@ assign priorityclassifier =
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=track ) then if tracktype=grade1 then 4 else 2
else if ( highway=bridleway|road ) then 2
@ -165,7 +167,7 @@ assign costfactor = if equal maxspeed 0
assign isgoodoneway = if reversedirection=yes then oneway=-1
else if oneway= then implicitoneway else oneway=yes|true|1
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if or isresidentialorliving highway=service then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -176,7 +178,7 @@ assign classifiermask add isbadoneway
add multiply isroundabout 4
add multiply islinktype 8
add multiply isgoodforcars 16
multiply highway=residential|living_street 32
multiply isresidentialorliving 32
---context:node # following code refers to node tags

View file

@ -36,6 +36,8 @@ assign classifier_ferry = 2
#
# calculate logical car access
#
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign caraccess
switch motorcar=
switch motor_vehicle=
@ -48,7 +50,7 @@ assign caraccess
switch highway=tertiary|tertiary_link 1
switch highway=unclassified 1
switch route=ferry 1
switch highway=residential|living_street 1
switch isresidentialorliving 1
switch highway=service 1
0
access=yes|permissive|designated|destination
@ -111,7 +113,7 @@ assign maxspeed_implicit =
switch highway=unclassified 50
switch route=ferry 10
switch highway=bridleway 10
switch highway=residential|living_street 30
switch isresidentialorliving 30
switch highway=service 30
switch highway=track|road|path switch tracktype=grade1 30 5
0
@ -197,7 +199,7 @@ assign priorityclassifier =
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=track ) then if tracktype=grade1 then 4 else 2
else if ( highway=bridleway|road ) then 2
@ -209,7 +211,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
else if oneway= then junction=roundabout else oneway=yes|true|1
assign isroundabout = junction=roundabout
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if or isresidentialorliving highway=service then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -220,7 +222,7 @@ assign classifiermask add isbadoneway
add multiply isroundabout 4
add multiply islinktype 8
add multiply isgoodforcars 16
add multiply highway=residential|living_street 32
add multiply isresidentialorliving 32
multiply caraccess_destination 64
---context:node # following code refers to node tags

View file

@ -30,6 +30,8 @@ assign initialcost switch route=ferry 20000 0
#
# calculate logical car access
#
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign caraccess
switch motorcar=
switch motor_vehicle=
@ -42,7 +44,7 @@ assign caraccess
switch or highway=tertiary highway=tertiary_link 1
switch highway=unclassified 1
switch route=ferry 1
switch or highway=residential highway=living_street 1
switch isresidentialorliving 1
switch highway=service 1
0
or access=yes or access=permissive or access=designated access=destination
@ -82,7 +84,7 @@ assign costfactor
switch highway=unclassified 2.5
switch route=ferry 5.67
switch highway=bridleway 5
switch or highway=residential highway=living_street 3.5
switch isresidentialorliving 3.5
switch highway=service 3.5
switch or highway=track or highway=road highway=path
switch tracktype=grade1 5
@ -91,12 +93,12 @@ assign costfactor
10000
assign trafficsourcedensity =
if highway=residential|living_street then 1
if isresidentialorliving then 1
else if and maxspeed=30|50 highway=tertiary|secondary|primary then 1
else 0
assign istrafficbackbone
if greater costfactor 9999 then false
if greater costfactor 9999 then false
else if highway=motorway|motorway_link then true
else false

View file

@ -36,6 +36,8 @@ assign classifier_ferry = 2
#
# calculate logical car access
#
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign caraccess
switch motorcar=
switch motor_vehicle=
@ -48,7 +50,7 @@ assign caraccess
switch highway=tertiary|tertiary_link 1
switch highway=unclassified 1
switch route=ferry 1
switch highway=residential|living_street 1
switch isresidentialorliving 1
switch highway=service 1
0
access=yes|permissive|designated|destination
@ -111,7 +113,7 @@ assign maxspeed_implicit =
switch highway=unclassified 50
switch route=ferry 10
switch highway=bridleway 10
switch highway=residential|living_street 30
switch isresidentialorliving 30
switch highway=service 30
switch highway=track|road|path switch tracktype=grade1 30 5
0
@ -197,7 +199,7 @@ assign priorityclassifier =
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=track ) then if tracktype=grade1 then 4 else 2
else if ( highway=bridleway|road ) then 2
@ -209,7 +211,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
else if oneway= then junction=roundabout else oneway=yes|true|1
assign isroundabout = junction=roundabout
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or isresidentialorliving highway=service ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -220,7 +222,7 @@ assign classifiermask add isbadoneway
add multiply isroundabout 4
add multiply islinktype 8
add multiply isgoodforcars 16
add multiply highway=residential|living_street 32
add multiply isresidentialorliving 32
multiply caraccess_destination 64
---context:node # following code refers to node tags

View file

@ -63,11 +63,13 @@ assign defaultaccess =
assign bikeaccess
or any_cycleroute
switch bicycle=
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
switch bicycle_road=yes
1
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
not or bicycle=private or bicycle=no bicycle=dismount
#
@ -116,6 +118,8 @@ assign onewaypenalty =
)
else 0.0
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign costfactor
switch and highway= not route=ferry 10000
@ -135,7 +139,7 @@ assign costfactor
switch route=ferry 5.67
switch highway=bridleway 5
switch highway=cycleway 1.3
switch or highway=residential highway=living_street switch isunpaved 10 1.2
switch isresidentialorliving switch isunpaved 10 1.2
switch highway=service switch isunpaved 10 1.2
switch or highway=track or highway=road or highway=path highway=footway
switch tracktype=grade1 switch isunpaved 3 1.2
@ -143,7 +147,7 @@ assign costfactor
switch tracktype=grade3 10.0
switch tracktype=grade4 20.0
switch tracktype=grade5 30.0
switch bicycle=designated 2.0
switch or bicycle=designated bicycle_road=yes 2.0
switch ispaved 2.0 100.0
10.0
@ -151,25 +155,25 @@ assign costfactor
assign priorityclassifier =
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( bicycle=designated ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( or bicycle=designated bicycle_road=yes ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
else 0
@ -181,7 +185,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or isresidentialorliving highway=service ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -216,7 +220,7 @@ assign footaccess
assign initialcost
switch bikeaccess
0
0
switch footaccess
300
1000000

View file

@ -4,7 +4,7 @@
# to fallback to this one.
#
# Structure is similar to trekking.brf, see this for documenation.
#
#
---context:global # following code refers to global config
@ -48,7 +48,8 @@ assign bikeaccess =
if any_cycleroute then true
else if bicycle= then
(
if vehicle= then
if bicycle_road=yes then true
else if vehicle= then
(
if access= then not or motorroad=yes highway=footway
else if access=private|no then false
@ -114,7 +115,7 @@ assign trafficpenalty0 =
(
if estimated_traffic_class=4 then 0.2
else if estimated_traffic_class=5 then 0.4
else if estimated_traffic_class=6|7 then 0.6
else if estimated_traffic_class=6|7 then 0.6
else 0
)
else if highway=secondary|secondary_link then
@ -139,6 +140,8 @@ assign trafficpenalty =
if hascycleway then min 0.3 trafficpenalty0
else trafficpenalty0
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign costfactor
switch and highway= not route=ferry 10000
@ -159,7 +162,7 @@ assign costfactor
switch route=ferry 5.67
switch highway=bridleway 5
switch highway=cycleway|footway 1.3
switch or highway=residential highway=living_street switch isunpaved 10 1.2
switch isresidentialorliving switch isunpaved 10 1.2
switch highway=service switch isunpaved 10 1.2
switch or highway=track or highway=road or highway=path highway=footway
switch tracktype=grade1 switch isunpaved 3 1.2
@ -167,7 +170,7 @@ assign costfactor
switch tracktype=grade3 10.0
switch tracktype=grade4 20.0
switch tracktype=grade5 30.0
switch bicycle=designated 1.3
switch or bicycle=designated bicycle_road=yes 1.3
switch ispaved 2.0 100.0
10.0
@ -175,25 +178,25 @@ assign costfactor
assign priorityclassifier =
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( bicycle=designated ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( or bicycle=designated bicycle_road=yes ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
else 0
@ -205,7 +208,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or isresidentialorliving highway=service ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -240,7 +243,7 @@ assign footaccess
assign initialcost
switch bikeaccess
0
0
switch footaccess
300
1000000

View file

@ -4,7 +4,7 @@
# to fallback to this one.
#
# Structure is similar to trekking.brf, see this for documenation.
#
#
---context:global # following code refers to global config
@ -58,11 +58,13 @@ assign defaultaccess
assign bikeaccess
or any_cycleroute
switch bicycle=
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
switch bicycle_road=yes
1
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
not or bicycle=private or bicycle=no bicycle=dismount
#
@ -111,6 +113,8 @@ assign onewaypenalty =
)
else 0.0
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign costfactor
switch and highway= not route=ferry 10000
@ -130,7 +134,7 @@ assign costfactor
switch route=ferry 5.67
switch highway=bridleway 5
switch highway=cycleway 1.3
switch or highway=residential highway=living_street switch isunpaved 10 1.2
switch isresidentialorliving switch isunpaved 10 1.2
switch highway=service switch isunpaved 10 1.2
switch or highway=track or highway=road or highway=path highway=footway
switch tracktype=grade1 switch isunpaved 3 1.2
@ -138,7 +142,7 @@ assign costfactor
switch tracktype=grade3 10.0
switch tracktype=grade4 20.0
switch tracktype=grade5 30.0
switch bicycle=designated 2.0
switch or bicycle=designated bicycle_road=yes 2.0
switch ispaved 2.0 100.0
10.0
@ -146,25 +150,25 @@ assign costfactor
assign priorityclassifier =
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( bicycle=designated ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( or bicycle=designated bicycle_road=yes ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
else 0
@ -176,7 +180,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or isresidentialorliving highway=service ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -220,7 +224,7 @@ assign footaccess
assign initialcost
switch bikeaccess
0
0
switch footaccess
300
1000000

View file

@ -1,5 +1,5 @@
---lookupversion:10
---minorversion:11
---minorversion:13
---context:way
@ -634,6 +634,14 @@ embedded_rails;0000000928 tram
embedded_rails;0000000007 yes
embedded_rails;0000000003 rail
living_street;0000000404 yes
sidewalk:bicycle;0000000439 yes designated
sidewalk:left:bicycle;0000001722 yes designated
sidewalk:right:bicycle;0000002667 yes designated
bicycle_road;0000006521 yes designated
---context:node
highway;0001314954 bus_stop
@ -879,3 +887,11 @@ traffic_calming;0000000186 dip
ford;0000037927 yes
ford;0000000310 stepping_stones
direction;0000274642 forward
direction;0000249637 backward
direction;0000021634 both
traffic_signals:direction;0000062645 forward
traffic_signals:direction;0000033961 backward
traffic_signals:direction;0000007309 both

View file

@ -29,6 +29,8 @@ assign initialcost switch route=ferry 20000 0
#
# calculate logical car access
#
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign motorverhicleaccess
switch motor_vehicle=
switch vehicle=
@ -39,7 +41,7 @@ assign motorverhicleaccess
switch or highway=tertiary highway=tertiary_link 1
switch highway=unclassified 1
switch route=ferry 1
switch or highway=residential highway=living_street 1
switch isresidentialorliving 1
switch highway=service 1
0
or access=yes or access=designated access=destination
@ -90,7 +92,7 @@ assign costfactor
switch highway=unclassified 1.2
switch route=ferry 5.67
switch highway=bridleway 5
switch or highway=residential highway=living_street 2
switch isresidentialorliving 2
switch highway=service 2
switch or highway=track or highway=road highway=path
switch tracktype=grade1 5
@ -113,7 +115,7 @@ assign priorityclassifier =
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=track ) then if tracktype=grade1 then 4 else 2
else if ( highway=bridleway|road ) then 2
@ -126,7 +128,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
else if oneway= then junction=roundabout else oneway=yes|true|1
assign isroundabout = junction=roundabout
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or isresidentialorliving highway=service ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false

View file

@ -36,11 +36,13 @@ assign defaultaccess
assign bikeaccess
or any_cycleroute
switch bicycle=
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
switch bicycle_road=yes
1
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
not or bicycle=private or bicycle=no bicycle=dismount
#
@ -67,27 +69,29 @@ assign costfactor
# way priorities used for voice hint generation
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign priorityclassifier =
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( bicycle=designated ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( or bicycle=designated bicycle_road=yes ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
else 0
# some more classifying bits used for voice hint generation...
@ -95,7 +99,7 @@ assign priorityclassifier =
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or isresidentialorliving highway=service ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false

View file

@ -52,7 +52,7 @@ assign is_ldcr =
if ignore_cycleroutes then false
else any_cycleroute
assign isbike = or bicycle=yes or or bicycle=permissive bicycle=designated lcn=yes
assign isbike = or bicycle_road=yes or bicycle=yes or or bicycle=permissive bicycle=designated lcn=yes
assign ispaved = surface=paved|asphalt|concrete|paving_stones
assign isunpaved = not or surface= or ispaved surface=fine_gravel|cobblestone
assign probablyGood = or ispaved and isbike not isunpaved
@ -102,7 +102,8 @@ assign bikeaccess =
if any_cycleroute then true
else if bicycle= then
(
if vehicle= then defaultaccess
if bicycle_road=yes then true
else if vehicle= then defaultaccess
else not vehicle=private|no
)
else not bicycle=private|no|dismount
@ -157,6 +158,7 @@ assign onewaypenalty =
# must be >=1 and it's supposed to be close to 1 for
# the type of way the routing profile is searching for
#
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign costfactor
#
@ -185,7 +187,7 @@ assign costfactor
#
# steps and ferries are special. Note this is handled
# before the cycleroute-switch, to be able
# to really exlude them be setting cost to infinity
# to really exlude them be setting cost to infinity
#
if ( highway=steps ) then ( if allow_steps then 40 else 10000 )
else if ( route=ferry ) then ( if allow_ferries then 5.67 else 10000 )
@ -203,7 +205,7 @@ assign costfactor
if ( highway=pedestrian ) then 3
else if ( highway=bridleway ) then 5
else if ( highway=cycleway ) then 1
else if ( highway=residential|living_street ) then ( if isunpaved then 1.5 else 1.1 )
else if ( isresidentialorliving ) then ( if isunpaved then 1.5 else 1.1 )
else if ( highway=service ) then ( if isunpaved then 1.6 else 1.3 )
#
@ -245,25 +247,25 @@ assign costfactor
assign priorityclassifier =
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( bicycle=designated ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( isresidentialorliving ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( or bicycle=designated bicycle_road=yes ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
else 0
# some more classifying bits used for voice hint generation...
@ -274,7 +276,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or isresidentialorliving highway=service ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false

View file

@ -15,7 +15,7 @@ assign low_memory_cutoff = false # mit true werden Wege mit hohen Kosten aus der
assign turnInstructionMode 1 #Ausgabe von Abiegehinweise 0=keine, 1=automatische Wahl, 2=locus-Style, 3=osmand-Style
assign turnInstructionCatchingRange 20 # innerhalb dieser Strecke werden mehrere Abiegehinweise zu einem zusammengefasst und die Abiegewinkel werden besser an die generelle Richtung angenähert
assign turnInstructionRoundabouts true # mit "false" werden keine speziellen Abiegehinweise für den Kreisverkehr generiert
assign turnInstructionRoundabouts true # mit "false" werden keine speziellen Abiegehinweise für den Kreisverkehr generiert
assign downhillcost 80 # Kosten für die Höhenmeter bergab
assign downhillcutoff 0.1 # Gefälle unter diesem Wert in Prozent werden nicht gewertet
@ -50,12 +50,12 @@ assign any_cycleroute or route_bicycle_icn=yes or route_bicycle_ncn=yes or route
assign nodeaccessgranted or any_cycleroute lcn=yes
assign cycleway
or highway=cycleway and highway=path|footway bicycle=designated|yes
or bicycle_road=yes or highway=cycleway and highway=path|footway bicycle=designated|yes
assign footway
or highway=footway and highway=path foot=designated|yes
assign turncost
assign turncost
switch junction=roundabout 0
150 # Kosten die für eine 90 Grad Abbiegung berechnet werden. Für kleinere Winkel werden sie mit turncost*cos(Winkel) berechnet, bei Kreisverkehr keine weitere Kosten
@ -99,8 +99,10 @@ assign defaultaccess
assign bikeaccess
or any_cycleroute
switch bicycle=
switch vehicle=
defaultaccess
switch bicycle_road=yes
1
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
@ -157,7 +159,7 @@ assign maxspeed_backward
switch maxspeed:backward=rural 100
0
assign maxspeed
assign maxspeed
switch and reversedirection=yes maxspeed_backward maxspeed_backward
switch and not reversedirection=yes maxspeed_forward maxspeed_forward
switch maxspeed=50 50
@ -203,7 +205,7 @@ assign upspeedpenalty
assign surfacepenalty
add switch embedded_rails=tram|yes|rail 10 # Zusatzkosten bei Schienen in der Fahrbahn
0
0
switch surface=asphalt|paved 0 #Zusatzkosten für Teer oder versiegelte Flächen
switch concrete=plates 1 # Zusatzkosten für Betonplattenwege
switch concrete=lanes 2 # Zusatzkosten für Betonspurplatten
@ -253,7 +255,7 @@ assign costfactor
switch tracktype=grade5 add lmc 50 # Kosten für kaum erkennbare Feldwege
add lmc 20 # Kosten für Feldwege ohne Oberflächenangabe
switch cycleway 1.3 # Kosten für Fahrradwege
switch highway=living_street 4 # Kosten für Spielstraßen
switch ( or highway=living_street living_street=yes ) 4 # Kosten für Spielstraßen
switch highway=road 7 # Kosten für noch nicht genauer beschriebene Straße
switch footway 15 # Kosten für Fußwege
switch highway=pedestrian 20 # Kosten für Gehwege
@ -296,13 +298,13 @@ assign uphillcostfactor
switch tracktype=grade5 add lmc 50
add lmc 20
switch cycleway 1
switch highway=living_street 2.5
switch ( or highway=living_street living_street=yes ) 2.5
switch highway=road 5
switch footway 15
switch highway=pedestrian 20
switch highway=steps 30
switch highway=path
switch surface= add lmc 30
switch surface= add lmc 30
1
switch highway=bridleway add lmc 80
add lmc 20
@ -339,13 +341,13 @@ assign downhillcostfactor
switch tracktype=grade5 add lmc 50
add lmc 20
switch cycleway 2
switch highway=living_street 8
switch ( or highway=living_street living_street=yes ) 8
switch highway=road 10
switch footway 20
switch highway=pedestrian 30
switch highway=steps 40
switch highway=path
switch surface= add lmc 40
switch surface= add lmc 40
2
switch highway=bridleway add lmc 80
add lmc 20
@ -355,25 +357,25 @@ assign downhillcostfactor
assign priorityclassifier =
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( bicycle=designated ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( or highway=residential|living_street living_street=yes ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( or bicycle=designated bicycle_road=yes ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
else 0
@ -384,7 +386,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or highway=residential|living_street|service living_street=yes ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -435,7 +437,7 @@ assign initialcost
switch railway=crossing|level_crossing 200 # Kosten für Bahnübergang
0
switch bikeaccess
0
0
switch footaccess
10000 # Kosten fürs Absteigen
1000000 #Kosten für verbotene oder private Wege
1000000 #Kosten für verbotene oder private Wege

View file

@ -15,7 +15,7 @@ assign low_memory_cutoff = false # mit true werden Wege mit hohen Kosten aus der
assign turnInstructionMode 1 #Ausgabe von Abiegehinweise 0=keine, 1=automatische Wahl, 2=locus-Style, 3=osmand-Style
assign turnInstructionCatchingRange 20 # innerhalb dieser Strecke werden mehrere Abiegehinweise zu einem zusammengefasst und die Abiegewinkel werden besser an die generelle Richtung angenähert
assign turnInstructionRoundabouts true # mit "false" werden keine speziellen Abiegehinweise für den Kreisverkehr generiert
assign turnInstructionRoundabouts true # mit "false" werden keine speziellen Abiegehinweise für den Kreisverkehr generiert
assign downhillcost 80 # Kosten für die Höhenmeter bergab
assign downhillcutoff 0.1 # Gefälle unter diesem Wert in Prozent werden nicht gewertet
@ -50,12 +50,12 @@ assign any_cycleroute or route_bicycle_icn=yes or route_bicycle_ncn=yes or route
assign nodeaccessgranted or any_cycleroute lcn=yes
assign cycleway
or highway=cycleway and highway=path|footway bicycle=designated|yes
or bicycle_road=yes or highway=cycleway and highway=path|footway bicycle=designated|yes
assign footway
or highway=footway and highway=path foot=designated|yes
assign turncost
assign turncost
switch junction=roundabout 0
150 # Kosten die für eine 90 Grad Abbiegung berechnet werden. Für kleinere Winkel werden sie mit turncost*cos(Winkel) berechnet, bei Kreisverkehr keine weitere Kosten
@ -99,8 +99,10 @@ assign defaultaccess
assign bikeaccess
or any_cycleroute
switch bicycle=
switch vehicle=
defaultaccess
switch bicycle_road=yes
1
switch vehicle=
defaultaccess
switch or vehicle=private vehicle=no
0
1
@ -157,7 +159,7 @@ assign maxspeed_backward
switch maxspeed:backward=rural 100
0
assign maxspeed
assign maxspeed
switch and reversedirection=yes maxspeed_backward maxspeed_backward
switch and not reversedirection=yes maxspeed_forward maxspeed_forward
switch maxspeed=50 50
@ -203,7 +205,7 @@ assign upspeedpenalty
assign surfacepenalty
add switch embedded_rails=tram|yes|rail 20 # Zusatzkosten bei Schienen in der Fahrbahn
0
0
switch surface=asphalt|paved 0 #Zusatzkosten für Teer oder versiegelte Flächen
switch concrete=plates 1 # Zusatzkosten für Betonplattenwege
switch concrete=lanes 5 # Zusatzkosten für Betonspurplatten
@ -253,7 +255,7 @@ assign costfactor
switch tracktype=grade5 add lmc 50 # Kosten für kaum erkennbare Feldwege
add lmc 20 # Kosten für Feldwege ohne Oberflächenangabe
switch cycleway 2.5 # Kosten für Fahrradwege
switch highway=living_street 5 # Kosten für Spielstraßen
switch ( or highway=living_street living_street=yes ) 5 # Kosten für Spielstraßen
switch highway=road 10 # Kosten für noch nicht genauer beschriebene Straße
switch footway 30 # Kosten für Fußwege
switch highway=pedestrian 30 # Kosten für Gehwege
@ -296,13 +298,13 @@ assign uphillcostfactor
switch tracktype=grade5 add lmc 50
add lmc 20
switch cycleway 2
switch highway=living_street 5
switch ( or highway=living_street living_street=yes ) 5
switch highway=road 10
switch footway 30
switch highway=pedestrian 30
switch highway=steps 40
switch highway=path
switch surface= add lmc 40
switch surface= add lmc 40
10
switch highway=bridleway add lmc 80
add lmc 20
@ -339,13 +341,13 @@ assign downhillcostfactor
switch tracktype=grade5 add lmc 50
add lmc 20
switch cycleway 5
switch highway=living_street 8
switch ( or highway=living_street living_street=yes ) 8
switch highway=road 10
switch footway 30
switch highway=pedestrian 30
switch highway=steps 40
switch highway=path
switch surface= add lmc 40
switch surface= add lmc 40
10
switch highway=bridleway add lmc 80
add lmc 20
@ -355,25 +357,25 @@ assign downhillcostfactor
assign priorityclassifier =
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( highway=residential|living_street ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( bicycle=designated ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
if ( highway=motorway ) then 30
else if ( highway=motorway_link ) then 29
else if ( highway=trunk ) then 28
else if ( highway=trunk_link ) then 27
else if ( highway=primary ) then 26
else if ( highway=primary_link ) then 25
else if ( highway=secondary ) then 24
else if ( highway=secondary_link ) then 23
else if ( highway=tertiary ) then 22
else if ( highway=tertiary_link ) then 21
else if ( highway=unclassified ) then 20
else if ( or highway=residential|living_street living_street=yes ) then 6
else if ( highway=service ) then 6
else if ( highway=cycleway ) then 6
else if ( or bicycle=designated bicycle_road=yes ) then 6
else if ( highway=track ) then if tracktype=grade1 then 6 else 4
else if ( highway=bridleway|road|path|footway ) then 4
else if ( highway=steps ) then 2
else if ( highway=pedestrian ) then 2
else 0
@ -384,7 +386,7 @@ assign isgoodoneway = if reversedirection=yes then oneway=-1
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
else if highway=residential|living_street|service then true
else if ( or highway=residential|living_street|service living_street=yes ) then true
else if ( and highway=track tracktype=grade1 ) then true
else false
@ -435,7 +437,7 @@ assign initialcost
switch railway=crossing|level_crossing 350 # Kosten für Bahnübergang
0
switch bikeaccess
0
0
switch footaccess
10000 # Kosten fürs Absteigen
1000000 #Kosten für verbotene oder private Wege
1000000 #Kosten für verbotene oder private Wege

View file

@ -0,0 +1,81 @@
Build your own BRouter segments files
=====================================
BRouter uses its own data format (`.rd5` files), split in tiles of 5 x 5
in latitude and longitude. You can download the official segment files (weekly
built) from [brouter.de](http://brouter.de/brouter/segments4/) but you can
also build them yourself from an OSM dump.
## Build the pbfparser
First, there are two file formats available to download OSM data: `bzip`-ed
XML files (very large) and `.pbf`
([Protobuf](https://github.com/protocolbuffers/protobuf) format) which is much
more efficient. If you want to use the latter one, you will have to build the
`pbfparser` (located in `misc/pbfparser` first):
* Download [the latest
version](https://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.zip)
of [Osmosis](https://wiki.openstreetmap.org/wiki/Osmosis) and unzip it
somewhere.
* Copy the `lib/default/protobuf-java-*.jar` and
`lib/default/osmosis-osm-binary-*.jar` files from the unzipped Osmosis
archive to `misc/pbfparser/protobuf.jar` and `misc/pbfparser/osmosis.jar`.
* Build BRouter and copy
`brouter-server/target/brouter-server-*-jar-with-dependencies.jar` to
`misc/pbfparser/brouter.jar`.
* You can build the `pbfparser` using, in the `misc/pbfparser/`
folder,
```
javac -d . -cp "brouter.jar:protobuf.jar:osmosis.jar" *.java
```
* Finally, you can build a `jar` file from these files using
```
jar cf pbfparser.jar btools/**/*.class
```
_Note:_ If the `jar` file is not properly created, everything else will seem
to work normally but there will not be any data extracted from the OSM data
dump. You can check what is actually inside the built `jar` file using
`jar tf pbfparser.jar`.
## Run the map creation script
If you want to have elevation information in the generated segments files, you
should download the required [SRTM
files](https://cgiarcsi.community/data/srtm-90m-digital-elevation-database-v4-1/)
and set the `SRTM_PATH` variable when running the `process_pbf_planet.sh`
script.
Any flavor of the 90m SRTM database should be working, but the one used by the
official BRouter segments files are the ones provided by
[CGIAR](https://cgiarcsi.community/data/srtm-90m-digital-elevation-database-v4-1/).
If you are working with rather small geographical extracts, you can download
tiles manually using [this
interface](http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp) (use the
"ArcInfo ASCII" format), instead of having to ask for an access for bulk
download of data. There is no need to unzip the downloaded files, the
`process_pbf_planet.sh` script expects a folder with all the ZIP files inside
and will manage it.
Note that if you don't have the SRTM data available, the segments files will
still be generated without any issue (but they will miss the elevation data).
If you are not sure which SRTM files you have to download, you can run the
script once and it will log all the SRTM files it is looking for.
You can now run the `misc/scripts/mapcreation/process_pbf_planet.sh` script to
build the segments. Have a look at the variables defined at the beginning of
the files and overwrite them according to your needs. By default, the script
will download the latest full planet dump from
[planet.osm.org](https://planet.osm.org/). You can also download a
geographical extract provided by [Geofabrik](https://download.geofabrik.de/)
and set the `PLANET_FILE` variable to point to it.
_Note:_ It is possible that you encounter an error complaining about not being
able to run `bash^M` on Linux/Mac OS. You can fix this one by running
`sed -i -e 's/\r$//' process_pbf_planet.sh`.

View file

@ -0,0 +1,64 @@
Using BRouter on Android with OSMAnd
====================================
BRouter integration in OSMAnd changed a lot during the summer of 2019. This
guide assumes you are using the BRouter Android app in version 1.5.0 or higher
as well as OSMAnd in version 3.4 or higher.
## Installing BRouter app on your Android device
First, install the BRouter app on your Android device from
[F-Droid](https://f-droid.org/packages/btools.routingapp) or [Google Play
Store](https://play.google.com/store/apps/details?id=btools.routingapp). You
can also build the BRouter Android app yourself.
<a href="https://f-droid.org/packages/btools.routingapp" target="_blank">
<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="90"/></a>
<a href="https://play.google.com/store/apps/details?id=btools.routingapp" target="_blank">
<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="90"/></a>
## Downloading BRouter segments
Then, launch the BRouter app and choose "Download Manager". Zoom in and select
the areas you want to route in. Then click "Start Download" and BRouter will
start downloading the [segments](http://brouter.de/brouter/segments4/) files
for the selected areas.
<img src="./brouter-main.png" alt="Main menu of BRouter android app"/>
<img src="./brouter-grid.png" alt="Grid selection of segments to download"/>
Note that you will have to repeat this step periodically, whenever you want to have an
updated version of the OSM data used for the routing.
## Selecting profiles to use
Once this is done, start again the BRouter app and choose the "BRouter App"
entry on the main menu. Select the routing profile you want to use and click
"Server-Mode". Then, tick the boxes for the routing modes you want to use this
profile for. You can use two different profiles per transportation mode, which
will be mapped to the "shortest" and "fastest" presets (these are just
labelling) in OSMAnd.
<img src="./brouter-profiles.png" alt="Profiles selection"/>
<img src="./brouter-profiles-summary.png" alt="Profiles selection summary"/>
## Configure OSMAnd to make use of BRouter offline navigation
You can now create an "Application profile" in OSMAnd which will be using
BRouter for offline routing. Go to Settings -> Application profiles -> Add and
create a new profile based on the base profile of your choice (cycling here,
for bicycle routing), with a custom name of your choice ("BRouter" on the
screenshot below) and making use of "BRouter (offline)" for navigation.
<img src="./brouter-osmand.png" alt="BRouter configuration in OSMAnd
application profiles"/>
The BRouter app should be launched before OSMAnd for this specific entry to
appear in OSMAnd. Therefore, if you cannot find "BRouter (offline)" navigation
option, you should force quit OSMAnd and restart it.

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View file

@ -1,6 +1,19 @@
#!/bin/bash
set -e
wget -N http://planet.openstreetmap.org/pbf/planet-latest.osm.pbf
cd "$(dirname "$0")"
# Fetch OSM planet dump if no planet file is specified
if [ -z "$PLANET_FILE" ]; then
if [ -x "$(command -v osmupdate)" ] && [[ -f "./planet-latest.osm.pbf" ]]; then
# Prefer running osmupdate to update the planet file if available
mv "./planet-latest.osm.pbf" "./planet-latest.old.osm.pbf"
osmupdate "planet-latest.old.osm.pbf" "./planet-latest.osm.pbf"
rm "./planet-latest.old.osm.pbf"
else
# Otherwise, download it again
wget -N http://planet.openstreetmap.org/pbf/planet-latest.osm.pbf
fi
fi
if test lastmaprun.date -nt planet-latest.osm.pbf; then
echo "no osm update, exiting"
@ -20,7 +33,7 @@ OSMOSIS_JAR=$(realpath "../../pbfparser/osmosis.jar")
PROTOBUF_JAR=$(realpath "../../pbfparser/protobuf.jar")
PBFPARSER_JAR=$(realpath "../../pbfparser/pbfparser.jar")
PLANET_FILE=$(realpath "./planet-latest.osm.pbf")
PLANET_FILE=${PLANET_FILE:-$(realpath "./planet-latest.osm.pbf")}
# Download SRTM zip files from
# https://cgiarcsi.community/data/srtm-90m-digital-elevation-database-v4-1/
# (use the "ArcInfo ASCII" version) and put the ZIP files directly in this