Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transportation Destinations #176

Merged
merged 15 commits into from
Jul 24, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
id: overture:transportation:segment:example:destinations:1
type: Feature
geometry:
type: LineString
coordinates: [[0, 0], [1, 1]]
properties:
theme: transportation
type: segment
subtype: road
class: secondary
version: 0
update_time: "2024-04-24T00:00:00-00:00"
connector_ids: [overture:transportation:connector:123, overture:transportation:connector:678]
destinations:
- labels:
- value: Seattle
type: place
- value: Seattle
type: place
- value: Redmond
- value:
foo: bar
type: place
- value: Bellevue
type: other
- value: Main Street
type: street
- value: I90
type: route
symbols:
- airport
from:
- segment_id: overture:transportation:segment:234
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
foo: bar
when:
heading: forward
to_connector_id: overture:transportation:connector:123
final_heading: backward
- labels:
- value: Kirkland
type: place
from:
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
ext_expected_errors:
- "[I#/properties/destinations/0/label] items at index 0 and 1 are equal"
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
id: overture:transportation:segment:example:destinations:1
type: Feature
geometry:
type: LineString
coordinates: [[0, 0], [1, 1]]
properties:
theme: transportation
type: segment
subtype: road
class: secondary
version: 0
update_time: "2024-04-24T00:00:00-00:00"
connector_ids: [overture:transportation:connector:123, overture:transportation:connector:678]
destinations:
- labels:
- value: Seattle
type: bad_type
symbols:
- airport
from:
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
when:
heading: forward
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
to_connector_id: overture:transportation:connector:123
final_heading: backward
ext_expected_errors:
- "[I#/properties/destinations/0/labels/0/type] [S#/$defs/propertyDefinitions/destinationLabelType/enum] value must be one of"
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
id: overture:transportation:segment:example:destinations:1
type: Feature
geometry:
type: LineString
coordinates: [[0, 0], [1, 1]]
properties:
theme: transportation
type: segment
subtype: road
class: secondary
version: 0
update_time: "2024-04-24T00:00:00-00:00"
connector_ids: [overture:transportation:connector:123, overture:transportation:connector:678]
destinations:
- labels:
- value: Seattle
type: place
- value: Seattle
type: place
symbols:
- airport
from:
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
when:
heading: forward
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
to_connector_id: overture:transportation:connector:123
final_heading: backward
ext_expected_errors:
- "[I#/properties/destinations/0/labels] items at index 0 and 1 are equal"
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
id: overture:transportation:segment:example:destinations:1
type: Feature
geometry:
type: LineString
coordinates: [[0, 0], [1, 1]]
properties:
theme: transportation
type: segment
subtype: road
class: secondary
version: 0
update_time: "2024-04-24T00:00:00-00:00"
connector_ids: [overture:transportation:connector:123, overture:transportation:connector:678]
destinations:
- labels:
- value:
type: place
symbols:
- airport
from:
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
when:
heading: forward
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
to_connector_id: overture:transportation:connector:123
final_heading: backward
ext_expected_errors:
- "[I#/properties/destinations/0/labels/0/value] [S#/$defs/propertyDefinitions/destinations/items/properties/labels/items/properties/value/type] expected string, but got null"
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
id: overture:transportation:segment:example:destinations:1
type: Feature
geometry:
type: LineString
coordinates: [[0, 0], [1, 1]]
properties:
theme: transportation
type: segment
subtype: road
class: secondary
version: 0
update_time: "2024-04-24T00:00:00-00:00"
connector_ids: [overture:transportation:connector:123, overture:transportation:connector:678]
destinations:
- labels:
- value: Seattle
type: place
symbols:
- airport
from:
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
when:
heading: forward
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
to_connector_id: overture:transportation:connector:123
ext_expected_errors:
- "[I#/properties/destinations/0] [S#/$defs/propertyDefinitions/destinations/items/required] missing properties: 'final_heading'"
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
id: overture:transportation:segment:example:destinations:1
type: Feature
geometry:
type: LineString
coordinates: [[0, 0], [1, 1]]
properties:
theme: transportation
type: segment
subtype: road
class: secondary
version: 0
update_time: "2024-04-24T00:00:00-00:00"
connector_ids: [overture:transportation:connector:123, overture:transportation:connector:678]
destinations:
- labels:
- value: Seattle
type: place
- value: Main Street
type: street
- value: I90
type: route
symbols:
- motorway
- airport
from:
- segment_id: overture:transportation:segment:234
connector_id: overture:transportation:connector:234
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
when:
heading: forward
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
to_connector_id: overture:transportation:connector:123
final_heading: backward
13 changes: 13 additions & 0 deletions examples/transportation/segment/road/road.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,16 @@ properties:
connector_id: overture:transportation:connector:456
final_heading: backward
when: {heading: backward}
destinations:
- labels:
- value: Seattle
type: place
- value: I 90
type: route
from:
- segment_id: overture:transportation:segment:567
connector_id: overture:transportation:connector:567
when:
heading: forward
to_connector_id: overture:transportation:connector:123
final_heading: backward
93 changes: 82 additions & 11 deletions schema/transportation/segment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,19 @@ properties:
unevaluatedProperties: false
required: [subtype]
allOf:
- title: "Conditional Properties"
- title: "Conditional Properties for subtype road"
if: { properties: { subtype: { enum: [road] } } }
then:
required: [class]
properties:
class: { "$ref": "#/$defs/propertyDefinitions/roadClass" }
road: { "$ref": "#/$defs/propertyDefinitions/road" }
destinations: { "$ref": "#/$defs/propertyDefinitions/destinations" }
- title: "Conditional Properties for subtype water"
if: { properties: { subtype: { enum: [water] } } }
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
then:
properties:
destinations: { "$ref": "#/$defs/propertyDefinitions/destinations" }
- "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer
- "$ref": ../defs.yaml#/$defs/propertyContainers/namesContainer
properties:
Expand All @@ -51,6 +57,71 @@ properties:
default: []
"$defs":
propertyDefinitions:
destinationLabelType:
description: >-
The type of object of the destination label.
type: string
enum:
- place
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
- street
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
- country
- route
destinations:
description: >-
Information about what destinations can be reached if following this segment.
Includes references to the segments from which it is needed to transition
onto this segment to reach the destinations.
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
type: array
items:
type: object
unevaluatedProperties: false
required: [labels, from, to_connector_id, final_heading]
properties:
labels:
description: >-
Describes the destination labels on the directions sign.
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
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:
type: array
items:
description: >-
A symbol or icon present on the sign.
type: string
pattern: ^(\S.*)?\S$
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
from:
description: >-
List of segments-connector pairs from where we need to transition
to this segment to reach the destination.
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
type: array
items:
description: Pair of segment and connector IDs along the sequence
"$ref": "#/$defs/propertyDefinitions/subSegmentReference"
when:
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
allOf:
- "$ref": "#/$defs/propertyContainers/headingScopeContainer"
to_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
final_heading:
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
description: >-
Direction of travel on this segment needed to reach the destination.
"$ref": "#/$defs/propertyDefinitions/heading"
roadClass:
description:
Captures the kind of road and its position in the road network
Expand Down Expand Up @@ -270,12 +341,12 @@ properties:
type: array
items:
description: Pair of segment and connector IDs along the sequence
"$ref": "#/$defs/propertyDefinitions/sequenceEntry"
"$ref": "#/$defs/propertyDefinitions/subSegmentReference"
minItems: 1
uniqueItems: true
final_heading:
description: >-
Direction of travel that is prohibited on the destination
Direction of travel that is prohibited on the final
segment of the sequence.
"$ref": "#/$defs/propertyDefinitions/heading"
when:
Expand Down Expand Up @@ -455,23 +526,23 @@ properties:
properties: { is_at_most: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/weightValueWithUnit" } ] } }
- required: [is_less_than]
properties: { is_less_than: { allOf: [ { "$ref": "#/$defs/propertyDefinitions/weightValueWithUnit" } ] } }
sequenceEntry:
subSegmentReference:
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
description: >-
A segment/connector pair in a prohibited transition sequence.
A segment/connector pair used to reference a part of a segment
that can have connections to other segments.
Used in describing prohibited transition sequences and source
segments for destinations.
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.
Identifies the point of physical connection between this segment
and other segments.
ibnt1 marked this conversation as resolved.
Show resolved Hide resolved
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.
Identifies the segment.
type: string
propertyContainers:
headingScopeContainer:
Expand Down
Loading