diff --git a/schema/transportation/segment.yaml b/schema/transportation/segment.yaml index 306bc188..98b22acc 100644 --- a/schema/transportation/segment.yaml +++ b/schema/transportation/segment.yaml @@ -23,6 +23,8 @@ properties: required: [class] properties: class: { "$ref": "#/$defs/propertyDefinitions/roadClass" } + subclass: { "$ref": "#/$defs/propertyDefinitions/subclass" } + subclass_rules: { "$ref": "#/$defs/propertyDefinitions/subclassRulesContainer" } access_restrictions: { "$ref": "#/$defs/propertyContainers/accessContainer" } level: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/level" } level_rules: { "$ref": "#/$defs/propertyContainers/levelRulesContainer" } @@ -78,13 +80,9 @@ properties: - living_street # Similar to residential but has implied legal restriction for motor vehicles (which can vary country by country) - trunk - unclassified # Known roads, paved, but subordinate to all of: motorway, trunk, primary, secondary, tertiary - - parking_aisle # Service road intended for parking - - driveway # Service road intended for deliveries - - alley # Service road intended for rear entrances, fire exits + - service # Provides vehicle access to a feature (such as a building), typically not part of the public street network - pedestrian - - footway - - sidewalk - - crosswalk + - footway # Minor segments mainly used by pedestrians - steps - path - track @@ -164,11 +162,11 @@ properties: access: { "$ref": "#/$defs/propertyContainers/accessContainer" } prohibited_transitions: { "$ref": "#/$defs/propertyContainers/prohibitedTransitionsContainer"} roadFlag: - description: Simple flags that can be on or off for a road segment + description: >- + Simple flags that can be on or off for a road segment. Specifies physical characteristics and can overlap. type: string enum: - is_bridge - - is_link - is_tunnel - is_under_construction - is_abandoned @@ -214,6 +212,18 @@ properties: minLength: 1 pattern: ^(\S.*)?\S$ # Leading and trailing whitespace are not allowed. wikidata: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/wikidata" } + subclass: + description: >- + Refines expected usage of the segment, must not overlap. + type: string + enum: + - link # Connecting stretch (sliproad or ramp) between two road types + - sidewalk # Footway that lies along a road + - crosswalk # Footway that intersects other roads + - parking_aisle # Service road intended for parking + - driveway # Service road intended for deliveries + - alley # Service road intended for rear entrances, fire exits + - cycle_crossing # Cycleway that intersects with other roads speed: description: >- A speed value, i.e. a certain number of distance units @@ -635,6 +645,16 @@ properties: required: [value] properties: value: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/level" } + subclassRulesContainer: + description: Set of subclasses scoped along segment + type: array + items: + type: object + allOf: + - { "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer" } + unevaluatedProperties: false + properties: + value: { "$ref": "#/$defs/propertyDefinitions/subclass" } surfaceContainer: description: Physical surface of the road. May either be specified as a single global value for the segment, or as