Segment
Segment 是人或物體可以行走的路徑。
Geometry Type | LineString |
---|---|
Theme | transportation |
Type | segment |
Segment 的幾何形狀代表人或物體可能行走的路徑中心線。 Segment 屬性描述了該路徑的物理屬性(例如路面和寬度)以及非物理屬性(例如通行限制規則)。
如果兩個 Segment 的 connector
屬性都引用了共同的 Connector ,則它們在物理上是連接的。在這種情況下,兩個 Segment 的幾何形狀都必須包含該共同 Connector 的坐標。 Segment 之間的物理連接表示在沒有屬性限制(如轉彎限制)的情況下,可能可以從一個 Segment 通行到另一個連接點。反之,即使兩個 Segment 的幾何形狀相交,但如果它們沒有共享共同的 Connector ,則它們不被視為物理上連接的。
子類型
Segment 可以有以下三種可能的子類型。
- 道路
- Railway
- Waterway
subtype | road |
---|
road
Segment 代表任何類型的道路、街道或小徑的一部分,包括專用的步行或騎行道,但不包括鐵路。
subtype | rail |
---|
The schema for rail
segments is under development.
subtype | water |
---|
The schema for water
segments is under development.
Schema
- Browsable
- YAML
Loading ....
---
"$schema": https://json-schema.org/draft/2020-12/schema
title: segment
description: >-
Segments are paths which can be traveled by people or things. Segments
are compatible with GeoJSON LineString features.
type: object
properties:
id:
"$ref": ../defs.yaml#/$defs/propertyDefinitions/id
geometry:
description: >-
Segment's geometry which MUST be a LineSting as defined by GeoJSON
schema.
unevaluatedProperties: false
allOf:
- "$ref": https://geojson.org/schema/LineString.json
properties:
unevaluatedProperties: false
required: [subtype]
allOf:
- title: "Segment Properties"
properties:
class: { "$ref": "#/$defs/propertyDefinitions/roadClass" }
subclass: { "$ref": "#/$defs/propertyDefinitions/subclass" }
subclass_rules: { "$ref": "#/$defs/propertyContainers/subclassRulesContainer" }
access_restrictions: { "$ref": "#/$defs/propertyContainers/accessContainer" }
level: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/level" }
level_rules: { "$ref": "#/$defs/propertyContainers/levelRulesContainer" }
- title: "Conditional Properties"
if: { properties: { subtype: { enum: [road] } } }
then:
required: [class]
properties:
destinations: { "$ref": "#/$defs/propertyDefinitions/destinations" }
lanes: { "$ref": "#/$defs/propertyContainers/lanesContainer" }
prohibited_transitions: { "$ref": "#/$defs/propertyContainers/prohibitedTransitionsContainer" }
road_surface: { "$ref": "#/$defs/propertyContainers/surfaceContainer"}
road_flags: { "$ref": "#/$defs/propertyContainers/flagsContainer" }
speed_limits: { "$ref": "#/$defs/propertyContainers/speedLimitsContainer" }
width_rules: { "$ref": "#/$defs/propertyContainers/widthRulesContainer" }
- "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer
- "$ref": ../defs.yaml#/$defs/propertyContainers/namesContainer
properties:
subtype:
description: Broad category of transportation segment.
type: string
enum: [road, rail, water]
"$comment": >-
Should not be confused with a transport mode. A segment
kind has an (implied) set of default transport modes.
connector_ids:
description: >-
** Deprecated** `connector_ids` is deprecated in favor of `connectors` and
is planned to be removed for the October release.
List of connector IDs identifying the connectors this segment is physically
connected to. Each connector is a possible routing decision point, meaning
it defines a place along the segment in which there is possibility to
transition to other segments which share the same connector.
type: array
items:
type: string
"$comment": >-
Each entry in this array is the GERS ID of a transportation connector feature.
uniqueItems: true
minItems: 2
default: []
connectors:
description: >-
List of connectors which this segment is physically connected to and their
relative location. Each connector is a possible routing decision point, meaning
it defines a place along the segment in which there is possibility to
transition to other segments which share the same connector.
type: array
items:
type: object
"$comment": >-
Contains the GERS ID and relative position between 0 and 1 of a connector feature along the segment.
unevaluatedProperties: false
required: [connector_id, at]
properties:
connector_id: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/id" }
at: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/linearlyReferencedPosition" }
uniqueItems: true
minItems: 2
default: []
routes: { "$ref": "#/$defs/propertyDefinitions/routes" }
"$defs":
propertyDefinitions:
destinationLabelType:
description: >-
The type of object of the destination label.
type: string
enum:
- street
- country
- route_ref
- toward_route_ref
- unknown
destinations:
description: >-
Describes objects that can be reached by following a transportation segment in the
same way those objects are described on signposts or ground writing that a traveller
following the segment would observe in the real world. This allows navigation systems
to refer to signs and observable writing that a traveller actually sees.
type: array
items:
type: object
unevaluatedProperties: false
required: [from_connector_id, to_connector_id, to_segment_id, final_heading]
anyOf:
- required: [labels]
- required: [symbols]
properties:
labels:
description: >-
Labeled destinations that can be reached by following the segment.
type: array
items:
type: object
unevaluatedProperties: false
required: [value, type]
properties:
value:
description: >-
Names the object that is reached
type: string
pattern: ^(\S.*)?\S$
type: { "$ref": "#/$defs/propertyDefinitions/destinationLabelType" }
minItems: 1
uniqueItems: true
symbols:
description: >-
A collection of symbols or icons present on the sign next to current
destination label.
type: array
items: { "$ref": "#/$defs/propertyDefinitions/destinationSignSymbol" }
uniqueItems: true
minLength: 1
from_connector_id:
description: >-
Identifies the point of physical connection on this segment before which
the destination sign or marking is visible.
type: string
to_segment_id:
description: >-
Identifies the segment to transition to reach the destination(s) labeled
on the sign or marking.
type: string
to_connector_id:
description: >-
Identifies the point of physical connection on the segment identified by
'to_segment_id' to transition to for reaching the destination(s).
type: string
when:
allOf:
- "$ref": "#/$defs/propertyContainers/headingScopeContainer"
minProperties: 1
unevaluatedProperties: false
final_heading:
description: >-
Direction of travel on the segment identified by 'to_segment_id' that leads
to the destination.
"$ref": "#/$defs/propertyDefinitions/heading"
roadClass:
description:
Captures the kind of road and its position in the road network
hierarchy.
type: string
enum:
- motorway
- primary
- secondary
- tertiary
- residential
- 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
- service # Provides vehicle access to a feature (such as a building), typically not part of the public street network
- pedestrian
- footway # Minor segments mainly used by pedestrians
- steps
- path
- track
- cycleway
- bridleway # Similar to track but has implied access only for horses
- unknown
lane:
description: Properties for a single lane of traffic.
type: object
unevaluatedProperties: false
required: [direction]
properties:
direction: { "$ref": "#/$defs/propertyDefinitions/laneDirection" }
restrictions:
description: Restrictions on how the lane may be used
"$comment": >-
Lane restrictions may be defined in the same way as for whole roads with the exception
of turns; there are no turn restrictions for lanes.
type: object
unevaluatedProperties: false
properties:
speed_limits:
"$ref": "#/$defs/propertyContainers/speedLimitsContainer"
access:
"$ref": "#/$defs/propertyContainers/accessContainer"
min_occupancy:
description: >-
Minimal occupancy restrictions relate to HOV (high occupancy vehicles) travel modes.
If a lane is restricted for use only by HOVs, then the default minimum vehicle
occupancy qualifying as HOV is 2+ passengers (including the driver). This
restriction can be provided to override the default definition of HOV.
type: integer
minimum: 1
laneDirection:
type: string
enum:
- forward # Traffic flows in the segment direction.
- backward # Traffic flows against the segment direction.
- both_ways # Traffic flows simultaneously in both directions as, e.g., on a sidewalk.
- alternating # Traffic flows alternately forward and backward following a predictable rhythm.
- reversible # Traffic flows forward, but may be arbitrarily reversed by traffic authorities at any time.
heading:
description: >-
Enumerates possible travel headings along segment geometry.
type: string
enum: [ forward, backward ]
travelMode:
description: >-
Enumerates possible travel modes. Some modes represent groups
of modes.
type: string
enum: [ vehicle, motor_vehicle, car, truck, motorcycle, foot, bicycle, bus, hgv, hov, emergency ]
"$comment": >-
motor_vehicle includes car, truck and motorcycle
destinationSignSymbol:
description: >-
Indicates what special symbol/icon is present on a signpost, visible as road marking or similar.
type: string
enum:
- motorway
- airport
- hospital
- center # center of a locality, city center or downtown, from centre in raw OSM value
- industrial
- parking
- bus
- train_station
- rest_area
- ferry
- motorroad
- fuel
- viewpoint
- fuel_diesel
- food # 'food', 'restaurant' in OSM
- lodging
- info
- camp_site
- interchange
- restrooms # 'toilets' in OSM
roadFlag:
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 # Note: `is_link` is deprecated and will be removed in a future release in favor of the link subclass
- is_tunnel
- is_under_construction
- is_abandoned
- is_covered
roadSurface:
description: Physical surface of the road
type: string
enum:
- unknown
- paved
- unpaved
- gravel
- dirt
- paving_stones
- metal
routes:
description: Routes this segment belongs to
type: array
items:
type: object
unevaluatedProperties: false
allOf:
- { "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer" }
properties:
name:
description: Full name of the route
type: string
minLength: 1
pattern: ^(\S.*)?\S$ # Leading and trailing whitespace are not allowed.
network:
description: Name of the highway system this route belongs to
type: string
minLength: 1
pattern: ^(\S.*)?\S$ # Leading and trailing whitespace are not allowed.
ref:
description: Code or number used to reference the route
type: string
minLength: 1
pattern: ^(\S.*)?\S$ # Leading and trailing whitespace are not allowed.
symbol:
description: URL or description of route signage
type: string
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
travelled per unit time.
type: object
properties:
value:
description: Speed value
type: integer
minimum: 1
maximum: 350
unit:
description: Speed unit
type: string
enum:
- km/h
- mph
required:
- value
- unit
unevaluatedProperties: false
purposeOfUse:
description: >-
Reason why a person or entity travelling on the transportation
network is using a particular location.
type: string
enum:
- as_customer
- at_destination
- to_deliver
- to_farm
- for_forestry
recognizedStatus:
description: >-
Status of the person or entity travelling as recognized by
authorities controlling the particular location
type: string
enum:
- as_permitted
- as_private
- as_disabled
- as_employee
- as_student
integerRelation:
description: >-
Completes an integer relational expression of the form
<lhs> <operator> <integer_value>. An example of such an
expression is:
`{ axle_count: { is_more_than: 2 } }`.
type: object
unevaluatedProperties: false
oneOf:
- required: [is_more_than]
properties: { is_more_than: { type: integer } }
- required: [is_at_least]
properties: { is_at_least: { type: integer } }
- required: [is_equal_to]
properties: { is_equal_to: { type: integer } }
- required: [is_at_most]
properties: { is_at_most: { type: integer } }
- required: [is_less_than]
properties: { is_less_than: { type: integer } }
vehicleScopeDimension:
description: Enumerates possible vehicle dimensions for use in restrictions
type: string
enum:
- axle_count
- height
- length
- weight
- width
vehicleScopeComparison:
description: Enumerates possible comparison operators for use in scoping
type: string
enum:
- greater_than
- greater_than_equal
- equal
- less_than
- less_than_equal
vehicleScopeUnit:
description: Parent enum of both length and width for use in vehicle scoping
anyOf:
- {"$ref": "#/$defs/propertyDefinitions/lengthUnit"}
- {"$ref": "#/$defs/propertyDefinitions/weightUnit"}
lengthUnit:
description: Enumerates length units supported by the Overture schema.
"$comment": Keep in sync with `combobulib/measure.py`.
type: string
enum:
# Imperial units.
- in # Imperial: Inch.
- ft # Imperial: Foot.
- yd # Imperial: Yard.
- mi # Imperial: Mile.
# SI units.
- cm # SI: centimeter.
- m # SI: meter.
- km # SI: kilometer.
lengthValueWithUnit:
description: Combines a length value with a length unit.
type: object
unevaluatedProperties: false
required: [value, unit]
properties:
value:
type: number
minimum: 0
unit: { "$ref": "#/$defs/propertyDefinitions/lengthUnit" }
lengthRelation:
description: >-
Completes a length relational expression of the form
<lhs> <operator> <length_value>. An example of such an
expression is:
`{ height: { is_less_than: { value: 3, unit: 'm' } } }`.
type: object
unevaluatedProperties: false
oneOf:
- required: [is_more_than]
properties: { is_more_than: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/lengthValueWithUnit" } ] } }
- required: [is_at_least]
properties: { is_at_least: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/lengthValueWithUnit" } ] } }
- required: [is_equal_to]
properties: { is_equal_to: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/lengthValueWithUnit" } ] } }
- required: [is_at_most]
properties: { is_at_most: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/lengthValueWithUnit" } ] } }
- required: [is_less_than]
properties: { is_less_than: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/lengthValueWithUnit" } ] } }
weightUnit:
description: Enumerates weight units supported by the Overture schema.
"$comment": Keep in sync with `combobulib/measure.py`.
type: string
enum:
# Imperial units.
- oz # Imperial: Ounce.
- lb # Imperial: Pound.
- st # Imperial: Short Ton.
- lt # Imperial: Long Ton.
# SI units.
- g # SI: gram.
- kg # SI: kilogram.
- t # SI: tonne.
weightValueWithUnit:
description: Combines a weight value with a weight unit.
type: object
unevaluatedProperties: false
required: [value, unit]
properties:
value:
type: number
minimum: 0
unit: { "$ref": "#/$defs/propertyDefinitions/weightUnit" }
weightRelation:
description: >-
Completes a weight relational expression of the form
<lhs> <operator> <weight_value>. An example of such an
expression is:
`{ weight: { is_more_than: { value: 2, unit: 't' } } }`.
type: object
unevaluatedProperties: false
oneOf:
- required: [is_more_than]
properties: { is_more_than: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/weightValueWithUnit" } ] } }
- required: [is_at_least]
properties: { is_at_least: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/weightValueWithUnit" } ] } }
- required: [is_equal_to]
properties: { is_equal_to: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/weightValueWithUnit" } ] } }
- required: [is_at_most]
properties: { is_at_most: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/weightValueWithUnit" } ] } }
- required: [is_less_than]
properties: { is_less_than: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/weightValueWithUnit" } ] } }
width:
type: number
exclusiveMinimum: 0
sequenceEntry:
description: >-
A segment/connector pair in a prohibited transition sequence.
type: object
required: [connector_id, segment_id]
properties:
connector_id:
description: >-
Identifies the point of physical connection between the
previous segment in the sequence and the segment in this
sequence entry.
type: string
segment_id:
description: >-
Identifies the segment that the previous segment in the
sequence is physically connected to via the sequence entry's
connector.
type: string
propertyContainers:
headingScopeContainer:
description: Properties defining travel headings that match a rule.
properties:
heading:
"$ref": "#/$defs/propertyDefinitions/heading"
purposeOfUseScopeContainer:
description: Properties defining usage purposes that match a rule.
properties:
using:
type: array
items:
"$ref": "#/$defs/propertyDefinitions/purposeOfUse"
uniqueItems: true
minLength: 1
temporalScopeContainer:
"$comment": >-
Temporal scoping properties defining the time spans when a
recurring rule is active.
properties:
during:
"$ref": ../defs.yaml#/$defs/propertyDefinitions/openingHours
travelModeScopeContainer:
description: Properties defining travel modes that match a rule.
type: object
properties:
mode:
description: Travel mode(s) to which the rule applies
type: array
items:
"$ref": "#/$defs/propertyDefinitions/travelMode"
uniqueItems: true
minLength: 1
recognizedStatusScopeContainer:
description: Properties defining statuses that match a rule.
properties:
recognized:
type: array
items:
"$ref": "#/$defs/propertyDefinitions/recognizedStatus"
uniqueItems: true
minLength: 1
vehicleScopeContainer:
description: >-
Properties defining vehicle attributes for which a rule is
active.
type: object
properties:
vehicle:
description: Vehicle attributes for which the rule applies
type: array
uniqueItems: true
minLength: 1
items:
description: An individual vehicle scope rule
type: object
unevaluatedProperties: false
required: [dimension, comparison, value]
properties:
dimension: { "$ref": "#/$defs/propertyDefinitions/vehicleScopeDimension" }
comparison: { "$ref": "#/$defs/propertyDefinitions/vehicleScopeComparison" }
value:
type: number
minimum: 0
unit: { "$ref": "#/$defs/propertyDefinitions/vehicleScopeUnit" }
speedLimitsContainer:
description: Rules governing speed on this road segment or lane
type: array
items:
description: An individual speed limit rule
"$comment": >-
TODO: Speed limits probably have directionality, so
should factor out a headingScopeContainer for this
purpose and use it to introduce an optional
direction property in each rule.
type: object
anyOf:
- required: [ min_speed ]
- required: [ max_speed ]
allOf:
- "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer"
unevaluatedProperties: false
properties:
min_speed: { "$ref": "#/$defs/propertyDefinitions/speed" }
max_speed: { "$ref": "#/$defs/propertyDefinitions/speed" }
is_max_speed_variable:
description: Indicates a variable speed corridor
type: boolean
default: false
when:
allOf:
- "$ref": "#/$defs/propertyContainers/temporalScopeContainer"
- "$ref": "#/$defs/propertyContainers/headingScopeContainer"
- "$ref": "#/$defs/propertyContainers/purposeOfUseScopeContainer"
- "$ref": "#/$defs/propertyContainers/recognizedStatusScopeContainer"
- "$ref": "#/$defs/propertyContainers/travelModeScopeContainer"
- "$ref": "#/$defs/propertyContainers/vehicleScopeContainer"
minProperties: 1
unevaluatedProperties: false
minLength: 1
uniqueItems: true
accessContainer:
description: Rules governing access to this road segment or lane
type: array
items:
type: object
unevaluatedProperties: false
allOf:
- { "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer" }
required: [access_type]
properties:
access_type:
type: string
enum: [allowed, denied, designated]
when:
allOf:
- "$ref": "#/$defs/propertyContainers/temporalScopeContainer"
- "$ref": "#/$defs/propertyContainers/headingScopeContainer"
- "$ref": "#/$defs/propertyContainers/purposeOfUseScopeContainer"
- "$ref": "#/$defs/propertyContainers/recognizedStatusScopeContainer"
- "$ref": "#/$defs/propertyContainers/travelModeScopeContainer"
- "$ref": "#/$defs/propertyContainers/vehicleScopeContainer"
minProperties: 1
unevaluatedProperties: false
minLength: 1
uniqueItems: true
lanesContainer:
description: >-
List of lane block rules describing the layout of lanes on
the road plus lane-related information. The standard rule
evaluation algorithm is used to determine which lane block
applies at a given place and time along the segment.
Each lane block contains the list of lanes that make up the
block. Lanes in the block are listed from left to right as
they would be seen by a person standing on the road segment
facing in the direction of the segment's orientation (toward
the end).
type: array
items:
type: object
unevaluatedProperties: false
allOf:
- "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer"
properties:
value:
type: array
items: { "$ref": "#/$defs/propertyDefinitions/lane" }
minItems: 1
when:
allOf:
- "$ref": "#/$defs/propertyContainers/temporalScopeContainer"
minProperties: 1
unevaluatedProperties: false
minItems: 1
uniqueItems: true
prohibitedTransitionsContainer:
description: >-
Rules preventing transitions from this segment to
another segment.
type: array
items:
type: object
unevaluatedProperties: false
allOf:
- "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer"
required: [sequence, final_heading]
properties:
sequence:
description: >-
Ordered sequence of connector/segment pairs that it is
prohibited to follow from this segment.
type: array
items:
description: Pair of segment and connector IDs along the sequence
"$ref": "#/$defs/propertyDefinitions/sequenceEntry"
minItems: 1
uniqueItems: true
final_heading:
description: >-
Direction of travel that is prohibited on the destination
segment of the sequence.
"$ref": "#/$defs/propertyDefinitions/heading"
when:
allOf:
- "$ref": "#/$defs/propertyContainers/headingScopeContainer"
- "$ref": "#/$defs/propertyContainers/temporalScopeContainer"
- "$ref": "#/$defs/propertyContainers/purposeOfUseScopeContainer"
- "$ref": "#/$defs/propertyContainers/recognizedStatusScopeContainer"
- "$ref": "#/$defs/propertyContainers/travelModeScopeContainer"
- "$ref": "#/$defs/propertyContainers/vehicleScopeContainer"
minProperties: 1
unevaluatedProperties: false
flagsContainer:
description:
Set of boolean attributes applicable to roads. May be
specified either as a single flag array of flag values, or
as an array of flag rules.
type: array
items:
type: object
allOf:
- { "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer" }
unevaluatedProperties: false
properties:
values:
type: array
items: { "$ref": "#/$defs/propertyDefinitions/roadFlag" }
uniqueItems: true
minLength: 1
uniqueItems: true
minLength: 1
levelRulesContainer:
description:
Defines the Z-order, i.e. stacking order, of the road
segment.
type: array
items:
description:
A single level rule defining the Z-order, i.e. stacking
order, applicable within a given scope on the road
segment.
type: object
allOf:
- { "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer" }
unevaluatedProperties: false
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
an array of surface rules.
type: array
items:
type: object
allOf:
- { "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer" }
unevaluatedProperties: false
properties:
value: { "$ref": "#/$defs/propertyDefinitions/roadSurface" }
minItems: 1
uniqueItems: true
"$comment":
We should likely restrict the available surface types to
the subset of the common OSM surface=* tag values that are
useful both for routing and for map tile rendering.
widthRulesContainer:
description: >-
Edge-to-edge width of the road modeled by this segment, in
meters.
Examples: (1) If this segment models a carriageway without
sidewalk, this value represents the edge-to-edge width of the
carriageway, inclusive of any shoulder. (2) If this segment
models a sidewalk by itself, this value represents the
edge-to-edge width of the sidewalk. (3) If this segment models a
combined sidewalk and carriageway, this value represents the
edge-to-edge width inclusive of sidewalk.
type: array
items:
type: object
allOf:
- { "$ref": "../defs.yaml#/$defs/propertyContainers/geometricRangeScopeContainer" }
required: [value]
properties:
value: { "$ref": "#/$defs/propertyDefinitions/width" }
unevaluatedProperties: false
minItems: 1
uniqueItems: true
Examples
- Simple Road
- Lanes
- Access Restrictions
- Turn Restrictions
{
"id": "overture:transportation:example:simple-road",
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-123.13538016118466,
49.28584368472093
],
[
-123.13430200328841,
49.28656927229528
],
[
-123.13325122717998,
49.28727252390803
]
]
},
"properties": {
"theme": "transportation",
"type": "segment",
"version": 5,
"subtype": "road",
"class": "residential",
"connector_ids": [
"overture:transportation:example:via-turn-restriction-connector1",
"overture:transportation:example:via-turn-restriction-connector2"
],
"connectors": [
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector1",
"at": 0
},
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector2",
"at": 1
}
],
"names": {
"primary": "Nicola Street"
},
"lanes": [
{
"value": [
{
"direction": "backward"
},
{
"direction": "forward"
}
]
}
],
"road_surface": [
{
"value": "paved"
}
]
}
}
{
"id": "overture:transportation:example:simple-road2",
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-122.2421117,
47.6382849
],
[
-122.2429835,
47.6384385
],
[
-122.2442307,
47.6386337
],
[
-122.2445016,
47.6386753
]
]
},
"properties": {
"theme": "transportation",
"type": "segment",
"subtype": "road",
"version": 2,
"class": "secondary",
"lanes": [
{
"value": [
{
"direction": "forward",
"restrictions": {
"access": [
{
"access_type": "allowed",
"when": {
"mode": [
"hov"
]
}
}
],
"min_occupancy": 3
}
},
{
"direction": "forward"
},
{
"direction": "forward"
}
]
}
],
"speed_limits": [
{
"max_speed": {
"value": 100,
"unit": "km/h"
}
}
]
}
}
{
"id": "overture:transportation:example:simple-road1",
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-122.152944,
47.629681
],
[
-122.152916,
47.629686
],
[
-122.152501,
47.62977
],
[
-122.152188,
47.62984
],
[
-122.151813,
47.629934
],
[
-122.151747,
47.629952
]
]
},
"properties": {
"theme": "transportation",
"type": "segment",
"version": 4,
"subtype": "road",
"class": "motorway",
"connector_ids": [
"fooConnector",
"barConnector"
],
"connectors": [
{
"connector_id": "fooConnector",
"at": 0
},
{
"connector_id": "barConnector",
"at": 1
}
],
"names": {
"primary": "SR 520"
},
"access_restrictions": [
{
"access_type": "denied",
"when": {
"mode": [
"foot"
]
}
}
]
}
}
此範例說明了跨越三個連接 Segment 的複雜 via
類型轉彎限制。當沿著 source
Segment 前進時,不允許通過 via
Segment 轉向 target
Segment 。
Source segment
{
"id": "overture:transportation:example:via-turn-restriction-source",
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-71.1100226929593,
42.30156668552357
],
[
-71.11055493812631,
42.30157222996385
],
[
-71.11102971081017,
42.30157407811038
],
[
-71.11143701579662,
42.30156114108277
],
[
-71.11197425857047,
42.30152602627953
],
[
-71.11234408150312,
42.30149091145671
],
[
-71.1126589307566,
42.30147612626226
],
[
-71.11301376086777,
42.301494607754876
],
[
-71.11320616874515,
42.301516785538524
]
]
},
"properties": {
"theme": "transportation",
"type": "segment",
"version": 5,
"subtype": "road",
"class": "primary",
"connector_ids": [
"overture:transportation:example:via-turn-restriction-connector1",
"overture:transportation:example:via-turn-restriction-connector2"
],
"connectors": [
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector1",
"at": 0
},
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector2",
"at": 1
}
],
"names": {
"primary": "Arborway"
},
"prohibited_transitions": [
{
"sequence": [
{
"segment_id": "overture:transportation:example:via-turn-restriction-target",
"connector_id": "overture:transportation:example:via-turn-restriction-connector2"
},
{
"segment_id": "overture:transportation:example:via-turn-restriction-via",
"connector_id": "overture:transportation:example:via-turn-restriction-connector1"
}
],
"final_heading": "forward",
"when": {
"heading": "forward",
"during": "Mo-Fr 06:00-09:00, 15:00-19:00"
}
}
],
"road_surface": [
{
"value": "paved"
}
]
}
}
Connector 1
{
"id": "overture:transportation:example:via-turn-restriction-connector1",
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-71.11234408150312,
42.30149091145671
]
},
"properties": {
"theme": "transportation",
"type": "connector",
"version": 1
}
}
Via segment
{
"id": "overture:transportation:example:simple-road2",
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-71.11213418200086,
42.3017182333833
],
[
-71.11234408150312,
42.30149091145671
],
[
-71.11248901211202,
42.3013264259736
],
[
-71.11283634581244,
42.30093831245662
]
]
},
"properties": {
"theme": "transportation",
"type": "segment",
"version": 5,
"subtype": "road",
"class": "secondary",
"connector_ids": [
"overture:transportation:example:via-turn-restriction-connector1",
"overture:transportation:example:via-turn-restriction-connector2"
],
"connectors": [
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector1",
"at": 0
},
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector2",
"at": 1
}
],
"names": {
"primary": "Washington Street"
},
"road_surface": [
{
"value": "paved"
}
]
}
}
Connector 2
{
"id": "overture:transportation:example:via-turn-restriction-connector2",
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-71.11248901211202,
42.3013264259736
]
},
"properties": {
"theme": "transportation",
"type": "connector",
"version": 1
}
}
Target segment
{
"id": "overture:transportation:example:turn-restriction-target",
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-71.11325364601365,
42.301374477956756
],
[
-71.11278137213321,
42.3013264259736
],
[
-71.11248901211202,
42.3013264259736
],
[
-71.11157195119078,
42.30139295947919
],
[
-71.1109997251666,
42.301428074356636
],
[
-71.11058492376937,
42.30143177065813
],
[
-71.11002519176327,
42.301415137298676
]
]
},
"properties": {
"theme": "transportation",
"type": "segment",
"version": 5,
"subtype": "road",
"class": "primary",
"connector_ids": [
"overture:transportation:example:via-turn-restriction-connector1",
"overture:transportation:example:via-turn-restriction-connector2"
],
"connectors": [
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector1",
"at": 0
},
{
"connector_id": "overture:transportation:example:via-turn-restriction-connector2",
"at": 1
}
],
"names": {
"primary": "Arborway"
},
"road_surface": [
{
"value": "paved"
}
]
}
}