diff --git a/app/src/main/java/de/westnordost/streetcomplete/osm/Highway.kt b/app/src/main/java/de/westnordost/streetcomplete/osm/Highway.kt index 072d328d27..1a5d342946 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/osm/Highway.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/osm/Highway.kt @@ -1,10 +1,10 @@ package de.westnordost.streetcomplete.osm val ALL_ROADS = setOf( - "motorway", "motorway_link", "trunk", "trunk_link", "primary", "primary_link", - "secondary", "secondary_link", "tertiary", "tertiary_link", + "motorway", "motorway_link", "trunk", "trunk_link", + "primary", "primary_link", "secondary", "secondary_link", "tertiary", "tertiary_link", "unclassified", "residential", "living_street", "pedestrian", - "service", "track", "road" + "service", "track", "busway", "road", ) val ALL_PATHS = setOf( diff --git a/app/src/main/java/de/westnordost/streetcomplete/osm/RoadWidth.kt b/app/src/main/java/de/westnordost/streetcomplete/osm/RoadWidth.kt index 9d4b2eb1ec..0486f35e15 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/osm/RoadWidth.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/osm/RoadWidth.kt @@ -39,7 +39,7 @@ fun guessRoadwayWidth(tags: Map): Float { "motorway" -> 2 * BROAD_LANE "motorway_link" -> BROAD_LANE "trunk", "primary" -> BROAD_LANE // to pay respect to that primary roads are usually broader than secondary etc - "secondary", "tertiary", "unclassified" -> LANE + "secondary", "tertiary", "unclassified", "busway" -> LANE "service" -> 2.5f else -> LANE } diff --git a/app/src/main/java/de/westnordost/streetcomplete/overlays/cycleway/CyclewayOverlay.kt b/app/src/main/java/de/westnordost/streetcomplete/overlays/cycleway/CyclewayOverlay.kt index af26e5e865..7d010d60b3 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/overlays/cycleway/CyclewayOverlay.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/overlays/cycleway/CyclewayOverlay.kt @@ -110,7 +110,7 @@ private fun getStreetCyclewayStyle(element: Element, countryInfo: CountryInfo): private val cyclewayTaggingNotExpectedFilter by lazy { """ ways with - highway ~ track|living_street|pedestrian|service|motorway_link|motorway + highway ~ track|living_street|pedestrian|service|motorway_link|motorway|busway or motorroad = yes or expressway = yes or maxspeed <= 20 diff --git a/app/src/main/java/de/westnordost/streetcomplete/overlays/sidewalk/SidewalkOverlay.kt b/app/src/main/java/de/westnordost/streetcomplete/overlays/sidewalk/SidewalkOverlay.kt index f5bec65dcf..b1b713522d 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/overlays/sidewalk/SidewalkOverlay.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/overlays/sidewalk/SidewalkOverlay.kt @@ -96,7 +96,7 @@ private fun getSidewalkStyle(element: Element): PolylineStyle { private val sidewalkTaggingNotExpectedFilter by lazy { """ ways with - highway ~ living_street|pedestrian|service|motorway_link + highway ~ living_street|pedestrian|service|motorway_link|busway or motorroad = yes or expressway = yes or maxspeed <= 10 diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/crossing/AddCrossing.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/crossing/AddCrossing.kt index 073346b171..5bd338f8e4 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/crossing/AddCrossing.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/crossing/AddCrossing.kt @@ -17,7 +17,7 @@ class AddCrossing : OsmElementQuestType { private val roadsFilter by lazy { """ ways with - highway ~ trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential + highway ~ trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|busway and area != yes and (access !~ private|no or (foot and foot !~ private|no)) """.toElementFilterExpression() } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/cycleway/AddCycleway.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/cycleway/AddCycleway.kt index b56e7beddf..cf0023fdab 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/cycleway/AddCycleway.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/cycleway/AddCycleway.kt @@ -118,7 +118,7 @@ class AddCycleway( // streets that may have cycleway tagging private val roadsFilter by lazy { """ ways with - highway ~ primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service + highway ~ primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service|busway and area != yes and motorroad != yes and expressway != yes diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/lanes/AddLanes.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/lanes/AddLanes.kt index 52e0138a98..09905a820b 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/lanes/AddLanes.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/lanes/AddLanes.kt @@ -98,7 +98,7 @@ class AddLanes : OsmFilterQuestType() { private val ROADS_WITH_LANES = listOf( "motorway", "motorway_link", "trunk", "trunk_link", "primary", "primary_link", "secondary", "secondary_link", "tertiary", "tertiary_link", - "unclassified" + "unclassified", "busway", ) } } diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/max_height/AddMaxHeight.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/max_height/AddMaxHeight.kt index 7116138b93..3ab350975d 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/max_height/AddMaxHeight.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/max_height/AddMaxHeight.kt @@ -28,7 +28,7 @@ class AddMaxHeight : OsmElementQuestType { private val roadsWithoutMaxHeightFilter by lazy { """ ways with ( - highway ~ motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|living_street|track|road + highway ~ motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|living_street|track|road|busway or (highway = service and access !~ private|no and vehicle !~ private|no) ) and $noMaxHeight diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/max_speed/AddMaxSpeed.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/max_speed/AddMaxSpeed.kt index 614eac6233..2d10f54861 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/max_speed/AddMaxSpeed.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/max_speed/AddMaxSpeed.kt @@ -17,7 +17,7 @@ class AddMaxSpeed : OsmFilterQuestType() { override val elementFilter = """ ways with - highway ~ motorway|trunk|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential + highway ~ motorway|trunk|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|busway and !maxspeed and !maxspeed:advisory and !maxspeed:forward and !maxspeed:backward and ${MAXSPEED_TYPE_KEYS.joinToString(" and ") { "!$it" }} and surface !~ ${UNPAVED_SURFACES.joinToString("|")} diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/max_weight/AddMaxWeight.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/max_weight/AddMaxWeight.kt index 02fcc541de..7bd9e4dd7d 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/max_weight/AddMaxWeight.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/max_weight/AddMaxWeight.kt @@ -14,7 +14,7 @@ class AddMaxWeight : OsmFilterQuestType() { override val elementFilter = """ ways with - highway ~ trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|living_street|service + highway ~ trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|living_street|service|busway and bridge and bridge != no and service != driveway and !maxweight and maxweight:signed != no diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt index 16d7ad2086..a023e9fd3a 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt @@ -24,7 +24,7 @@ class AddOneway : OsmElementQuestType { /** find only those roads eligible for asking for oneway */ private val elementFilter by lazy { """ - ways with highway ~ living_street|residential|service|tertiary|unclassified + ways with highway ~ living_street|residential|service|tertiary|unclassified|busway and width <= 4 and (!lanes or lanes <= 1) and !oneway and area != yes and junction != roundabout and (access !~ private|no or (foot and foot !~ private|no)) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/road_name/AddRoadName.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/road_name/AddRoadName.kt index e711b8ac85..a6f5521bf2 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/road_name/AddRoadName.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/road_name/AddRoadName.kt @@ -15,7 +15,7 @@ class AddRoadName : OsmFilterQuestType() { override val elementFilter = """ ways with - highway ~ primary|secondary|tertiary|unclassified|residential|living_street|pedestrian + highway ~ primary|secondary|tertiary|unclassified|residential|living_street|pedestrian|busway and !name and !name:left and !name:right and !ref and noname != yes diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/sidewalk/AddSidewalk.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/sidewalk/AddSidewalk.kt index ce5fdd2a23..b3ee1597f3 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/sidewalk/AddSidewalk.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/sidewalk/AddSidewalk.kt @@ -57,14 +57,14 @@ private val roadsFilter by lazy { """ ways with ( ( - highway ~ trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service + highway ~ trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service|busway and motorroad != yes and expressway != yes and foot != no ) or ( - highway ~ motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service + highway ~ motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service|busway and (foot ~ yes|designated or bicycle ~ yes|designated) ) ) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/smoothness/AddRoadSmoothness.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/smoothness/AddRoadSmoothness.kt index fbe27aa874..6a05008f89 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/smoothness/AddRoadSmoothness.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/smoothness/AddRoadSmoothness.kt @@ -53,6 +53,6 @@ val SURFACES_FOR_SMOOTHNESS = listOf( private val ROADS_TO_ASK_SMOOTHNESS_FOR = arrayOf( // "trunk","trunk_link","motorway","motorway_link", // too much, motorways are almost by definition smooth asphalt (or concrete) "primary", "primary_link", "secondary", "secondary_link", "tertiary", "tertiary_link", - "unclassified", "residential", "living_street", "pedestrian", "track", - // "service", // this is too much, and the information value is very low + "unclassified", "residential", "living_street", "pedestrian", "track", "busway", + // "service", // this is too much (e.g. includes driveways), and the information value is very low ) diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt index ebd1c8165b..24aa3f61b9 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddRoadSurface.kt @@ -18,7 +18,7 @@ class AddRoadSurface : OsmFilterQuestType() { ways with ( highway ~ ${listOf( "primary", "primary_link", "secondary", "secondary_link", "tertiary", "tertiary_link", - "unclassified", "residential", "living_street", "pedestrian", "track", + "unclassified", "residential", "living_street", "pedestrian", "track", "busway", ).joinToString("|") } or highway = service and service !~ driveway|slipway diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddSidewalkSurface.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddSidewalkSurface.kt index b133b299b3..ee7a4868ae 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddSidewalkSurface.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/surface/AddSidewalkSurface.kt @@ -14,7 +14,7 @@ class AddSidewalkSurface : OsmFilterQuestType() { // Only roads with 'complete' sidewalk tagging (at least one side has sidewalk, other side specified) override val elementFilter = """ ways with - highway ~ motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service|living_street + highway ~ motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|unclassified|residential|service|living_street|busway and area != yes and ( sidewalk ~ both|left|right or diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/way_lit/AddWayLit.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/way_lit/AddWayLit.kt index 9d4e0248ba..62ea1f9711 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/way_lit/AddWayLit.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/way_lit/AddWayLit.kt @@ -64,7 +64,9 @@ class AddWayLit : OsmFilterQuestType() { } companion object { - private val LIT_RESIDENTIAL_ROADS = arrayOf("residential", "living_street", "pedestrian") + private val LIT_RESIDENTIAL_ROADS = arrayOf( + "residential", "living_street", "pedestrian", "busway" + ) private val LIT_NON_RESIDENTIAL_ROADS = arrayOf( "motorway", "motorway_link", "trunk", "trunk_link", "primary", "primary_link", diff --git a/app/src/main/java/de/westnordost/streetcomplete/quests/width/AddRoadWidth.kt b/app/src/main/java/de/westnordost/streetcomplete/quests/width/AddRoadWidth.kt index ac4e245885..3b3e1d456f 100644 --- a/app/src/main/java/de/westnordost/streetcomplete/quests/width/AddRoadWidth.kt +++ b/app/src/main/java/de/westnordost/streetcomplete/quests/width/AddRoadWidth.kt @@ -28,7 +28,7 @@ class AddRoadWidth( private val wayFilter by lazy { """ ways with ( ( - highway ~ trunk|primary|secondary|tertiary|unclassified|residential + highway ~ trunk|primary|secondary|tertiary|unclassified|residential|busway and (lane_markings = no or lanes < 2) ) or ( highway = residential