From 8dedbacfc1421a89160651dfbfb211d0a37abd3f Mon Sep 17 00:00:00 2001 From: jwasserman Date: Mon, 18 Sep 2023 12:10:32 -0700 Subject: [PATCH 01/12] Initial building part definition Add the notion of a building part. Both building footprints and building parts share in some shape definitions. These are pulled out in a common defs.yaml file which are shared by buildings (footprints) and parts. Validated/tested with the test.sh script --- examples/buildings/building-part-basic.yaml | 33 ++++++++++++++ schema/buildings/building.yaml | 12 ++--- schema/buildings/building_part.yaml | 26 +++++++++++ schema/buildings/defs.yaml | 50 +++++++++++++++++++++ schema/defs.yaml | 1 + schema/schema.yaml | 8 ++++ 6 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 examples/buildings/building-part-basic.yaml create mode 100644 schema/buildings/building_part.yaml create mode 100644 schema/buildings/defs.yaml diff --git a/examples/buildings/building-part-basic.yaml b/examples/buildings/building-part-basic.yaml new file mode 100644 index 00000000..c98ff616 --- /dev/null +++ b/examples/buildings/building-part-basic.yaml @@ -0,0 +1,33 @@ +--- +id: overture:buildings:part:1234 +type: Feature +geometry: + type: Polygon + coordinates: [[ + [-77.036873, 38.897804], + [-77.036873, 38.897559], + [-77.036260, 38.897559], + [-77.036260, 38.897804], + [-77.036873, 38.897804] + ]] +properties: + # Custom user properties. + extFoo: I am a customer user property. + extBar: Me too! + # Overture properties + theme: buildings + type: part + version: 1 + level: 1 + updateTime: "2023-06-06T10:30:00-08:00" + height: 21.34 + numFloors: 4 + minHeight: 15.0 + roofShape: dome + roofOrientation: across + roofDirection: 23.4 + sources: + - property: "" + dataset: microsoftMLBuildings + - property: /properties/height + dataset: metaLidarExtractions diff --git a/schema/buildings/building.yaml b/schema/buildings/building.yaml index d300c716..3491df7a 100644 --- a/schema/buildings/building.yaml +++ b/schema/buildings/building.yaml @@ -19,16 +19,9 @@ properties: allOf: - "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/levelContainer + - "$ref": ./defs.yaml#/shapeContainer properties: names: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/names" } - height: - description: Height of the building in meters - type: number - exclusiveMinimum: 0 - numFloors: - description: Number of above-ground floors of the building - type: integer - exclusiveMinimum: 0 class: description: >- A broad category of the building type / purpose. When the current use of the building does not match the built purpose, the class should @@ -48,3 +41,6 @@ properties: - medical - entertainment - military + hasParts: + description: Flag indicating whether the building has parts + type: boolean diff --git a/schema/buildings/building_part.yaml b/schema/buildings/building_part.yaml new file mode 100644 index 00000000..fffeeb9c --- /dev/null +++ b/schema/buildings/building_part.yaml @@ -0,0 +1,26 @@ +--- +"$schema": https://json-schema.org/draft/2020-12/schema +title: Building Footprint Schema +description: >- + A single building part. Parts describe their shape and color and other properties. Each + building part must contain the building with which it is associated. +type: object +properties: + geometry: + description: >- + The part's geometry. It must be a polygon or multipolygon. + unevaluatedProperties: false + oneOf: + - "$ref": https://geojson.org/schema/Polygon.json + - "$ref": https://geojson.org/schema/MultiPolygon.json + properties: + unevaluatedProperties: false + allOf: + - "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer + - "$ref": ../defs.yaml#/$defs/propertyContainers/levelContainer + - "$ref": ./defs.yaml#/shapeContainer + properties: + building: + description: The building ID that this part belongs to + type: string + diff --git a/schema/buildings/defs.yaml b/schema/buildings/defs.yaml new file mode 100644 index 00000000..ed579457 --- /dev/null +++ b/schema/buildings/defs.yaml @@ -0,0 +1,50 @@ +--- +"$schema": https://json-schema.org/draft/2020-12/schema +title: Overture Maps Shared Building Properties +description: Common schema definitions shared by building footprints and building parts +shapeContainer: + properties: + height: + description: Height of the building in meters + type: number + exclusiveMinimum: 0 + numFloors: + description: Number of above-ground floors of the building + type: integer + exclusiveMinimum: 0 + minHeight: + description: The height of the bottom part of building in Height Units. Used if a building or part of building starts above the ground leve + type: number + roofShape: + description: The shape of the roof + type: string + enum: + - dome + - flat + - gable + - gambrel + - half-hip + - hip + - mansard + - onion + - pyramid + - round + - spherical + - other + roofDirection: + description: Direction of the roof shape. + type: number + exclusiveMinimum: 0 + exclusiveMaximum: 360 + roofOrientation: + description: The shape of the roof + type: string + enum: + - across + - along + roofColor: + description: The color (name or color triplet) of the roof of a building or building part in hexadecimal + type: string + eaveHeight: + description: The height of the building eave in Height Units + type: number diff --git a/schema/defs.yaml b/schema/defs.yaml index ac66c7e9..12a90182 100644 --- a/schema/defs.yaml +++ b/schema/defs.yaml @@ -23,6 +23,7 @@ description: Common schema definitions shared by all themes - land - landUse - locality + - part - place - segment - water diff --git a/schema/schema.yaml b/schema/schema.yaml index e1c83b17..da2bc0ba 100644 --- a/schema/schema.yaml +++ b/schema/schema.yaml @@ -34,6 +34,14 @@ oneOf: type: { enum: [building] } then: { "$ref": buildings/building.yaml } else: { propertyNames: false } + - if: + properties: + properties: + properties: + theme: { enum: [buildings] } + type: { enum: [part] } + then: { "$ref": buildings/building_part.yaml } + else: { propertyNames: false } - if: properties: properties: From 01a163b72a32435589207ad746da716890af2c07 Mon Sep 17 00:00:00 2001 From: Jennings Anderson Date: Mon, 18 Sep 2023 14:16:12 -0700 Subject: [PATCH 02/12] adding building_part to documentation --- .../reference/buildings/building_part.mdx | 51 +++++++++++++++++++ docusaurus/sidebars.js | 1 + docusaurus/src/YAML_FILE_TREE.js | 2 + schema/buildings/building.yaml | 2 +- schema/buildings/building_part.yaml | 3 +- schema/buildings/defs.yaml | 4 +- 6 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 docusaurus/docs/reference/buildings/building_part.mdx diff --git a/docusaurus/docs/reference/buildings/building_part.mdx b/docusaurus/docs/reference/buildings/building_part.mdx new file mode 100644 index 00000000..83f52b96 --- /dev/null +++ b/docusaurus/docs/reference/buildings/building_part.mdx @@ -0,0 +1,51 @@ +--- +title: building_part +--- + +import CodeBlock from '@theme/CodeBlock'; +import JSONSchemaViewer from "@theme/JSONSchemaViewer"; +import generateResolverOptions from "@site/src/components/shared-libs/generateResolverOptions" +import yamlLoad from "@site/src/components/yamlLoad" +import BuildingPartSchema from "!!raw-loader!@site/docs/_schema/buildings/building_part.yaml"; + +import BuildingPartExample from "!!raw-loader!@site/docs/_examples/buildings/building-part-basic.yaml"; + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Building Part + + + + + + + + + + + + + + +
Geometry TypePolygon or MultiPolygon
Themebuildings
Typebuilding_part
+ + +## Schema + + + + + + + {BuildingPartSchema} + + + +## Examples + + + + { JSON.stringify(yamlLoad(BuildingPartExample), null, 2) } + + diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js index 3f1bfc77..f82719ab 100644 --- a/docusaurus/sidebars.js +++ b/docusaurus/sidebars.js @@ -76,6 +76,7 @@ const sidebars = { collapsed: false, items: [ 'reference/buildings/building', + 'reference/buildings/building_part' ] }, { diff --git a/docusaurus/src/YAML_FILE_TREE.js b/docusaurus/src/YAML_FILE_TREE.js index f80c0d27..fc06f1a6 100644 --- a/docusaurus/src/YAML_FILE_TREE.js +++ b/docusaurus/src/YAML_FILE_TREE.js @@ -7,6 +7,8 @@ const _default = { '/admins/locality.yaml': require('!!raw-loader!@site/docs/_schema/admins/locality.yaml'), '/buildings/building.yaml': require('!!raw-loader!@site/docs/_schema/buildings/building.yaml'), + '/buildings/building_part.yaml': require('!!raw-loader!@site/docs/_schema/buildings/building_part.yaml'), + '/buildings/defs.yaml': require('!!raw-loader!@site/docs/_schema/buildings/defs.yaml'), '/places/place.yaml': require('!!raw-loader!@site/docs/_schema/places/place.yaml'), diff --git a/schema/buildings/building.yaml b/schema/buildings/building.yaml index 3491df7a..25a5b5d0 100644 --- a/schema/buildings/building.yaml +++ b/schema/buildings/building.yaml @@ -17,9 +17,9 @@ properties: properties: unevaluatedProperties: false allOf: + - "$ref": ./defs.yaml#/shapeContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/levelContainer - - "$ref": ./defs.yaml#/shapeContainer properties: names: { "$ref": "../defs.yaml#/$defs/propertyDefinitions/names" } class: diff --git a/schema/buildings/building_part.yaml b/schema/buildings/building_part.yaml index fffeeb9c..0dc06753 100644 --- a/schema/buildings/building_part.yaml +++ b/schema/buildings/building_part.yaml @@ -16,11 +16,10 @@ properties: properties: unevaluatedProperties: false allOf: + - "$ref": ./defs.yaml#/shapeContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/levelContainer - - "$ref": ./defs.yaml#/shapeContainer properties: building: description: The building ID that this part belongs to type: string - diff --git a/schema/buildings/defs.yaml b/schema/buildings/defs.yaml index ed579457..0fe6e27c 100644 --- a/schema/buildings/defs.yaml +++ b/schema/buildings/defs.yaml @@ -3,6 +3,8 @@ title: Overture Maps Shared Building Properties description: Common schema definitions shared by building footprints and building parts shapeContainer: + title: Shape + description: Propeties of the buildings shape, such as height or roof type. properties: height: description: Height of the building in meters @@ -43,7 +45,7 @@ shapeContainer: - across - along roofColor: - description: The color (name or color triplet) of the roof of a building or building part in hexadecimal + description: The color (name or color triplet) of the roof of a building or building part in hexadecimal type: string eaveHeight: description: The height of the building eave in Height Units From 70ef530e2fcf00d337b0ca4a00f1bba72a36ee56 Mon Sep 17 00:00:00 2001 From: jwasserman Date: Tue, 19 Sep 2023 06:22:30 -0700 Subject: [PATCH 03/12] Update descriptions for buildings and parts fields --- schema/buildings/building_part.yaml | 2 +- schema/buildings/defs.yaml | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/schema/buildings/building_part.yaml b/schema/buildings/building_part.yaml index 0dc06753..cddd3f79 100644 --- a/schema/buildings/building_part.yaml +++ b/schema/buildings/building_part.yaml @@ -21,5 +21,5 @@ properties: - "$ref": ../defs.yaml#/$defs/propertyContainers/levelContainer properties: building: - description: The building ID that this part belongs to + description: The building ID to which this part belongs type: string diff --git a/schema/buildings/defs.yaml b/schema/buildings/defs.yaml index 0fe6e27c..efeebdc5 100644 --- a/schema/buildings/defs.yaml +++ b/schema/buildings/defs.yaml @@ -7,15 +7,18 @@ shapeContainer: description: Propeties of the buildings shape, such as height or roof type. properties: height: - description: Height of the building in meters + description: >- + Height of the building or part in meters. The height is the distance from the lowest point to the highest point. type: number exclusiveMinimum: 0 numFloors: - description: Number of above-ground floors of the building + description: >- + Number of above-ground floors of the building or part. type: integer exclusiveMinimum: 0 minHeight: - description: The height of the bottom part of building in Height Units. Used if a building or part of building starts above the ground leve + description: >- + The height of the bottom part of building in meters. Used if a building or part of building starts above the ground level. type: number roofShape: description: The shape of the roof @@ -34,12 +37,14 @@ shapeContainer: - spherical - other roofDirection: - description: Direction of the roof shape. + description: >- + Bearing of the roof ridge line. type: number exclusiveMinimum: 0 exclusiveMaximum: 360 roofOrientation: - description: The shape of the roof + description: >- + Orientation of the roof shape relative to the footprint shape. Either "along" or "across". type: string enum: - across @@ -48,5 +53,5 @@ shapeContainer: description: The color (name or color triplet) of the roof of a building or building part in hexadecimal type: string eaveHeight: - description: The height of the building eave in Height Units + description: The height of the building eave in meters type: number From e7bce0127a71def0982598ce8392ac5a318bb089 Mon Sep 17 00:00:00 2001 From: Jennings Anderson Date: Tue, 26 Sep 2023 10:46:00 -0700 Subject: [PATCH 04/12] renaming of building_part -> part --- .../docs/reference/buildings/{building_part.mdx => part.mdx} | 4 ++-- docusaurus/sidebars.js | 2 +- docusaurus/src/YAML_FILE_TREE.js | 2 +- schema/buildings/{building_part.yaml => part.yaml} | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename docusaurus/docs/reference/buildings/{building_part.mdx => part.mdx} (95%) rename schema/buildings/{building_part.yaml => part.yaml} (96%) diff --git a/docusaurus/docs/reference/buildings/building_part.mdx b/docusaurus/docs/reference/buildings/part.mdx similarity index 95% rename from docusaurus/docs/reference/buildings/building_part.mdx rename to docusaurus/docs/reference/buildings/part.mdx index 83f52b96..97e0e762 100644 --- a/docusaurus/docs/reference/buildings/building_part.mdx +++ b/docusaurus/docs/reference/buildings/part.mdx @@ -1,5 +1,5 @@ --- -title: building_part +title: part --- import CodeBlock from '@theme/CodeBlock'; @@ -26,7 +26,7 @@ import TabItem from '@theme/TabItem'; Type - building_part + part diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js index f82719ab..04ac13bc 100644 --- a/docusaurus/sidebars.js +++ b/docusaurus/sidebars.js @@ -76,7 +76,7 @@ const sidebars = { collapsed: false, items: [ 'reference/buildings/building', - 'reference/buildings/building_part' + 'reference/buildings/part' ] }, { diff --git a/docusaurus/src/YAML_FILE_TREE.js b/docusaurus/src/YAML_FILE_TREE.js index fc06f1a6..01d9415a 100644 --- a/docusaurus/src/YAML_FILE_TREE.js +++ b/docusaurus/src/YAML_FILE_TREE.js @@ -7,7 +7,7 @@ const _default = { '/admins/locality.yaml': require('!!raw-loader!@site/docs/_schema/admins/locality.yaml'), '/buildings/building.yaml': require('!!raw-loader!@site/docs/_schema/buildings/building.yaml'), - '/buildings/building_part.yaml': require('!!raw-loader!@site/docs/_schema/buildings/building_part.yaml'), + '/buildings/part.yaml': require('!!raw-loader!@site/docs/_schema/buildings/part.yaml'), '/buildings/defs.yaml': require('!!raw-loader!@site/docs/_schema/buildings/defs.yaml'), '/places/place.yaml': require('!!raw-loader!@site/docs/_schema/places/place.yaml'), diff --git a/schema/buildings/building_part.yaml b/schema/buildings/part.yaml similarity index 96% rename from schema/buildings/building_part.yaml rename to schema/buildings/part.yaml index cddd3f79..2e6ee337 100644 --- a/schema/buildings/building_part.yaml +++ b/schema/buildings/part.yaml @@ -1,6 +1,6 @@ --- "$schema": https://json-schema.org/draft/2020-12/schema -title: Building Footprint Schema +title: Building Part Schema description: >- A single building part. Parts describe their shape and color and other properties. Each building part must contain the building with which it is associated. From de8bb51248e6ee25bc491046010943d7d0862a2c Mon Sep 17 00:00:00 2001 From: Jennings Anderson Date: Tue, 26 Sep 2023 10:47:59 -0700 Subject: [PATCH 05/12] one more place to update building part --- schema/schema.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema/schema.yaml b/schema/schema.yaml index da2bc0ba..eecc04e2 100644 --- a/schema/schema.yaml +++ b/schema/schema.yaml @@ -40,7 +40,7 @@ oneOf: properties: theme: { enum: [buildings] } type: { enum: [part] } - then: { "$ref": buildings/building_part.yaml } + then: { "$ref": buildings/part.yaml } else: { propertyNames: false } - if: properties: From 3357d21f31e71fe59ea8ffd2c0000c5efe693dfe Mon Sep 17 00:00:00 2001 From: Jennings Anderson Date: Tue, 26 Sep 2023 10:52:49 -0700 Subject: [PATCH 06/12] another spot to update --- docusaurus/docs/reference/buildings/part.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/reference/buildings/part.mdx b/docusaurus/docs/reference/buildings/part.mdx index 97e0e762..4dfded22 100644 --- a/docusaurus/docs/reference/buildings/part.mdx +++ b/docusaurus/docs/reference/buildings/part.mdx @@ -6,7 +6,7 @@ import CodeBlock from '@theme/CodeBlock'; import JSONSchemaViewer from "@theme/JSONSchemaViewer"; import generateResolverOptions from "@site/src/components/shared-libs/generateResolverOptions" import yamlLoad from "@site/src/components/yamlLoad" -import BuildingPartSchema from "!!raw-loader!@site/docs/_schema/buildings/building_part.yaml"; +import BuildingPartSchema from "!!raw-loader!@site/docs/_schema/buildings/part.yaml"; import BuildingPartExample from "!!raw-loader!@site/docs/_examples/buildings/building-part-basic.yaml"; From 6bcdc4154a476ee3dfccb759f7aaff34968b0597 Mon Sep 17 00:00:00 2001 From: jwasserman Date: Tue, 3 Oct 2023 06:31:46 -0700 Subject: [PATCH 07/12] Add building id to part example and make required Was missing the building id in the part example --- examples/buildings/building-part-basic.yaml | 1 + schema/buildings/part.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/examples/buildings/building-part-basic.yaml b/examples/buildings/building-part-basic.yaml index c98ff616..8de4e6b9 100644 --- a/examples/buildings/building-part-basic.yaml +++ b/examples/buildings/building-part-basic.yaml @@ -20,6 +20,7 @@ properties: version: 1 level: 1 updateTime: "2023-06-06T10:30:00-08:00" + building: abc123 height: 21.34 numFloors: 4 minHeight: 15.0 diff --git a/schema/buildings/part.yaml b/schema/buildings/part.yaml index 2e6ee337..daf8d72a 100644 --- a/schema/buildings/part.yaml +++ b/schema/buildings/part.yaml @@ -19,6 +19,7 @@ properties: - "$ref": ./defs.yaml#/shapeContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/levelContainer + required: [building] properties: building: description: The building ID to which this part belongs From 5dc4989977eccf2857c880473aa79d14607b129f Mon Sep 17 00:00:00 2001 From: Steve Moore Date: Fri, 27 Oct 2023 14:46:04 -0700 Subject: [PATCH 08/12] Added multipart OSM building example --- examples/buildings/osm/outline.json | 70 +++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 examples/buildings/osm/outline.json diff --git a/examples/buildings/osm/outline.json b/examples/buildings/osm/outline.json new file mode 100644 index 00000000..c46e4c87 --- /dev/null +++ b/examples/buildings/osm/outline.json @@ -0,0 +1,70 @@ +https://www.openstreetmap.org/way/30407741 + +{ + "id": "overture:buildings:building:1234", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -117.1710888, + 32.7238481 + ], + [ + -117.1711025, + 32.7239038 + ], + [ + -117.1711923, + 32.7238882 + ], + [ + -117.1712198, + 32.7240000 + ], + [ + -117.1712713, + 32.7242091 + ], + [ + -117.1706665, + 32.7243145 + ], + [ + -117.1705738, + 32.7239379 + ], + [ + -117.1707783, + 32.7239022 + ], + [ + -117.1710888, + 32.7238481 + ] + ] + ] + }, + "properties": { + "extFoo": "I am a customer user property.", + "extBar": "Me too!", + "theme": "buildings", + "type": "building", + "version": 1, + "level": 1, + "updateTime": "2023-06-06T10:30:00-08:00", + "names": { + "common": [{ + "value": "Valentina by Alta", + "language": "local" + }] + }, + "numFloors": 8, + "class": "commercial", + "sources": [{ + "property": "", + "dataset": "OpenStreetMap" + }] + } +} From ae3356deb553838d62b896059aaadd5cb8a5e3e9 Mon Sep 17 00:00:00 2001 From: Steve Moore Date: Fri, 27 Oct 2023 14:46:44 -0700 Subject: [PATCH 09/12] Added parts for OSM multipart example --- examples/buildings/osm/part1.json | 70 +++++++++++++++++++++++++++++++ examples/buildings/osm/part2.json | 70 +++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 examples/buildings/osm/part1.json create mode 100644 examples/buildings/osm/part2.json diff --git a/examples/buildings/osm/part1.json b/examples/buildings/osm/part1.json new file mode 100644 index 00000000..53727f16 --- /dev/null +++ b/examples/buildings/osm/part1.json @@ -0,0 +1,70 @@ +{ + "id": "overture:buildings:part:100", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -117.1707971, + 32.7240658 + ], + [ + -117.1712198, + 32.7240000 + ], + [ + -117.1712713, + 32.7242091 + ], + [ + -117.1706665, + 32.7243145 + ], + [ + -117.1705738, + 32.7239379 + ], + [ + -117.1707783, + 32.7239022 + ], + [ + -117.1707949, + 32.7240226 + ], + [ + -117.1707279, + 32.7240319 + ], + [ + -117.1707635, + 32.7241786 + ], + [ + -117.1708208, + 32.7241677 + ], + [ + -117.1707971, + 32.7240658 + ] + ] + ] + }, + "properties": { + "building": "1234", + "extFoo": "I am a customer user property.", + "extBar": "Me too!", + "theme": "buildings", + "type": "part", + "version": 1, + "level": 1, + "updateTime": "2023-06-06T10:30:00-08:00", + "numFloors": 8, + "sources": [{ + "property": "", + "dataset": "OpenStreetMap" + }] + } +} \ No newline at end of file diff --git a/examples/buildings/osm/part2.json b/examples/buildings/osm/part2.json new file mode 100644 index 00000000..04bb087c --- /dev/null +++ b/examples/buildings/osm/part2.json @@ -0,0 +1,70 @@ +{ + "id": "overture:buildings:part:101", + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -117.1712198, + 32.7240000 + ], + [ + -117.1711923, + 32.7238882 + ], + [ + -117.1711025, + 32.7239038 + ], + [ + -117.1710888, + 32.7238481 + ], + [ + -117.1707783, + 32.7239022 + ], + [ + -117.1707949, + 32.7240226 + ], + [ + -117.1707279, + 32.7240319 + ], + [ + -117.1707635, + 32.7241786 + ], + [ + -117.1708208, + 32.7241677 + ], + [ + -117.1707971, + 32.7240658 + ], + [ + -117.1712198, + 32.7240000 + ] + ] + ] + }, + "properties": { + "building": "1234", + "extFoo": "I am a customer user property.", + "extBar": "Me too!", + "theme": "buildings", + "type": "part", + "version": 1, + "level": 1, + "updateTime": "2023-06-06T10:30:00-08:00", + "numFloors": 3, + "sources": [{ + "property": "", + "dataset": "OpenStreetMap" + }] + } +} \ No newline at end of file From b55b8ebd7ace63ec49fb54e8ba9c68a3ea6f8a85 Mon Sep 17 00:00:00 2001 From: Jennings Anderson Date: Tue, 31 Oct 2023 09:27:55 -0700 Subject: [PATCH 10/12] converting to yaml --- examples/buildings/osm/outline.json | 70 ----------------------------- examples/buildings/osm/outline.yaml | 33 ++++++++++++++ examples/buildings/osm/part1.json | 70 ----------------------------- examples/buildings/osm/part1.yaml | 30 +++++++++++++ examples/buildings/osm/part2.json | 70 ----------------------------- examples/buildings/osm/part2.yaml | 30 +++++++++++++ 6 files changed, 93 insertions(+), 210 deletions(-) delete mode 100644 examples/buildings/osm/outline.json create mode 100644 examples/buildings/osm/outline.yaml delete mode 100644 examples/buildings/osm/part1.json create mode 100644 examples/buildings/osm/part1.yaml delete mode 100644 examples/buildings/osm/part2.json create mode 100644 examples/buildings/osm/part2.yaml diff --git a/examples/buildings/osm/outline.json b/examples/buildings/osm/outline.json deleted file mode 100644 index c46e4c87..00000000 --- a/examples/buildings/osm/outline.json +++ /dev/null @@ -1,70 +0,0 @@ -https://www.openstreetmap.org/way/30407741 - -{ - "id": "overture:buildings:building:1234", - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -117.1710888, - 32.7238481 - ], - [ - -117.1711025, - 32.7239038 - ], - [ - -117.1711923, - 32.7238882 - ], - [ - -117.1712198, - 32.7240000 - ], - [ - -117.1712713, - 32.7242091 - ], - [ - -117.1706665, - 32.7243145 - ], - [ - -117.1705738, - 32.7239379 - ], - [ - -117.1707783, - 32.7239022 - ], - [ - -117.1710888, - 32.7238481 - ] - ] - ] - }, - "properties": { - "extFoo": "I am a customer user property.", - "extBar": "Me too!", - "theme": "buildings", - "type": "building", - "version": 1, - "level": 1, - "updateTime": "2023-06-06T10:30:00-08:00", - "names": { - "common": [{ - "value": "Valentina by Alta", - "language": "local" - }] - }, - "numFloors": 8, - "class": "commercial", - "sources": [{ - "property": "", - "dataset": "OpenStreetMap" - }] - } -} diff --git a/examples/buildings/osm/outline.yaml b/examples/buildings/osm/outline.yaml new file mode 100644 index 00000000..a497dbb4 --- /dev/null +++ b/examples/buildings/osm/outline.yaml @@ -0,0 +1,33 @@ +# https://www.openstreetmap.org/way/30407741 +id: overture:buildings:building:1234 +type: Feature +geometry: + type: Polygon + coordinates: [[ + [-117.1710888, 32.7238481], + [-117.1711025, 32.7239038], + [-117.1711923, 32.7238882], + [-117.1712198, 32.724], + [-117.1712713, 32.7242091], + [-117.1706665, 32.7243145], + [-117.1705738, 32.7239379], + [-117.1707783, 32.7239022], + [-117.1710888, 32.7238481] + ]] +properties: + extFoo: I am a customer user property. + extBar: Me too! + theme: buildings + type: building + version: 1 + level: 1 + updateTime: '2023-06-06T10:30:00-08:00' + names: + common: + - value: Valentina by Alta + language: local + numFloors: 8 + class: commercial + sources: + - property: '' + dataset: OpenStreetMap diff --git a/examples/buildings/osm/part1.json b/examples/buildings/osm/part1.json deleted file mode 100644 index 53727f16..00000000 --- a/examples/buildings/osm/part1.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "id": "overture:buildings:part:100", - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -117.1707971, - 32.7240658 - ], - [ - -117.1712198, - 32.7240000 - ], - [ - -117.1712713, - 32.7242091 - ], - [ - -117.1706665, - 32.7243145 - ], - [ - -117.1705738, - 32.7239379 - ], - [ - -117.1707783, - 32.7239022 - ], - [ - -117.1707949, - 32.7240226 - ], - [ - -117.1707279, - 32.7240319 - ], - [ - -117.1707635, - 32.7241786 - ], - [ - -117.1708208, - 32.7241677 - ], - [ - -117.1707971, - 32.7240658 - ] - ] - ] - }, - "properties": { - "building": "1234", - "extFoo": "I am a customer user property.", - "extBar": "Me too!", - "theme": "buildings", - "type": "part", - "version": 1, - "level": 1, - "updateTime": "2023-06-06T10:30:00-08:00", - "numFloors": 8, - "sources": [{ - "property": "", - "dataset": "OpenStreetMap" - }] - } -} \ No newline at end of file diff --git a/examples/buildings/osm/part1.yaml b/examples/buildings/osm/part1.yaml new file mode 100644 index 00000000..b724e2a0 --- /dev/null +++ b/examples/buildings/osm/part1.yaml @@ -0,0 +1,30 @@ +id: overture:buildings:part:100 +type: Feature +geometry: + type: Polygon + coordinates: [[ + [-117.1707971, 32.7240658], + [-117.1712198, 32.724], + [-117.1712713, 32.7242091], + [-117.1706665, 32.7243145], + [-117.1705738, 32.7239379], + [-117.1707783, 32.7239022], + [-117.1707949, 32.7240226], + [-117.1707279, 32.7240319], + [-117.1707635, 32.7241786], + [-117.1708208, 32.7241677], + [-117.1707971, 32.7240658] + ]] +properties: + building: '1234' + extFoo: I am a customer user property. + extBar: Me too! + theme: buildings + type: part + version: 1 + level: 1 + updateTime: '2023-06-06T10:30:00-08:00' + numFloors: 8 + sources: + - property: '' + dataset: OpenStreetMap diff --git a/examples/buildings/osm/part2.json b/examples/buildings/osm/part2.json deleted file mode 100644 index 04bb087c..00000000 --- a/examples/buildings/osm/part2.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "id": "overture:buildings:part:101", - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -117.1712198, - 32.7240000 - ], - [ - -117.1711923, - 32.7238882 - ], - [ - -117.1711025, - 32.7239038 - ], - [ - -117.1710888, - 32.7238481 - ], - [ - -117.1707783, - 32.7239022 - ], - [ - -117.1707949, - 32.7240226 - ], - [ - -117.1707279, - 32.7240319 - ], - [ - -117.1707635, - 32.7241786 - ], - [ - -117.1708208, - 32.7241677 - ], - [ - -117.1707971, - 32.7240658 - ], - [ - -117.1712198, - 32.7240000 - ] - ] - ] - }, - "properties": { - "building": "1234", - "extFoo": "I am a customer user property.", - "extBar": "Me too!", - "theme": "buildings", - "type": "part", - "version": 1, - "level": 1, - "updateTime": "2023-06-06T10:30:00-08:00", - "numFloors": 3, - "sources": [{ - "property": "", - "dataset": "OpenStreetMap" - }] - } -} \ No newline at end of file diff --git a/examples/buildings/osm/part2.yaml b/examples/buildings/osm/part2.yaml new file mode 100644 index 00000000..56c1f0cf --- /dev/null +++ b/examples/buildings/osm/part2.yaml @@ -0,0 +1,30 @@ +id: overture:buildings:part:101 +type: Feature +geometry: + type: Polygon + coordinates: [[ + [-117.1712198, 32.724], + [-117.1711923, 32.7238882], + [-117.1711025, 32.7239038], + [-117.1710888, 32.7238481], + [-117.1707783, 32.7239022], + [-117.1707949, 32.7240226], + [-117.1707279, 32.7240319], + [-117.1707635, 32.7241786], + [-117.1708208, 32.7241677], + [-117.1707971, 32.7240658], + [-117.1712198, 32.724] + ]] +properties: + building: '1234' + extFoo: I am a customer user property. + extBar: Me too! + theme: buildings + type: part + version: 1 + level: 1 + updateTime: '2023-06-06T10:30:00-08:00' + numFloors: 3 + sources: + - property: '' + dataset: OpenStreetMap From 1ec5857620bb1840bfa614f8277f3167ad879276 Mon Sep 17 00:00:00 2001 From: jwasserman Date: Mon, 13 Nov 2023 08:43:04 -0800 Subject: [PATCH 11/12] In building part: building -> buildingId --- examples/buildings/building-part-basic.yaml | 2 +- examples/buildings/osm/part1.yaml | 2 +- examples/buildings/osm/part2.yaml | 2 +- schema/buildings/part.yaml | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/buildings/building-part-basic.yaml b/examples/buildings/building-part-basic.yaml index 8de4e6b9..664784ba 100644 --- a/examples/buildings/building-part-basic.yaml +++ b/examples/buildings/building-part-basic.yaml @@ -20,7 +20,7 @@ properties: version: 1 level: 1 updateTime: "2023-06-06T10:30:00-08:00" - building: abc123 + buildingId: abc123 height: 21.34 numFloors: 4 minHeight: 15.0 diff --git a/examples/buildings/osm/part1.yaml b/examples/buildings/osm/part1.yaml index b724e2a0..a835667a 100644 --- a/examples/buildings/osm/part1.yaml +++ b/examples/buildings/osm/part1.yaml @@ -16,7 +16,7 @@ geometry: [-117.1707971, 32.7240658] ]] properties: - building: '1234' + buildingId: '1234' extFoo: I am a customer user property. extBar: Me too! theme: buildings diff --git a/examples/buildings/osm/part2.yaml b/examples/buildings/osm/part2.yaml index 56c1f0cf..a43e54d0 100644 --- a/examples/buildings/osm/part2.yaml +++ b/examples/buildings/osm/part2.yaml @@ -16,7 +16,7 @@ geometry: [-117.1712198, 32.724] ]] properties: - building: '1234' + buildingId: '1234' extFoo: I am a customer user property. extBar: Me too! theme: buildings diff --git a/schema/buildings/part.yaml b/schema/buildings/part.yaml index daf8d72a..2e8264b7 100644 --- a/schema/buildings/part.yaml +++ b/schema/buildings/part.yaml @@ -19,8 +19,8 @@ properties: - "$ref": ./defs.yaml#/shapeContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/overtureFeaturePropertiesContainer - "$ref": ../defs.yaml#/$defs/propertyContainers/levelContainer - required: [building] + required: [buildingId] properties: - building: + buildingId: description: The building ID to which this part belongs type: string From 4e786cb1beaed5934ae59844daaf422a1c4ba6ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Michalski?= Date: Mon, 13 Nov 2023 10:33:17 +0100 Subject: [PATCH 12/12] Added facadeMaterial, roofMaterial and facadeColor properties for building and part --- schema/buildings/defs.yaml | 40 +++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/schema/buildings/defs.yaml b/schema/buildings/defs.yaml index efeebdc5..0a0c732c 100644 --- a/schema/buildings/defs.yaml +++ b/schema/buildings/defs.yaml @@ -4,7 +4,7 @@ title: Overture Maps Shared Building Properties description: Common schema definitions shared by building footprints and building parts shapeContainer: title: Shape - description: Propeties of the buildings shape, such as height or roof type. + description: Properties of the buildings shape, such as height or roof type. properties: height: description: >- @@ -20,6 +20,44 @@ shapeContainer: description: >- The height of the bottom part of building in meters. Used if a building or part of building starts above the ground level. type: number + facadeColor: + description: >- + The color (name or color triplet) of the facade of a building or building part in hexadecimal + type: string + facadeMaterial: + description: >- + The outer surface material of building facade. + type: string + enum: + - brick + - cement_block + - concrete + - glass + - metal + - mud + - plaster + - plastic + - stone + - wood + - other + roofMaterial: + description: >- + The outermost material of the roof. + type: string + enum: + - concrete + - copper + - eternit + - glass + - grass + - metal + - plastic + - roof_tiles + - slate + - tar_paper + - thatch + - wood + - other roofShape: description: The shape of the roof type: string