Skip to content

Commit

Permalink
Update schema
Browse files Browse the repository at this point in the history
  • Loading branch information
m-mohr committed Aug 23, 2024
1 parent 78004cd commit 1a45407
Showing 1 changed file with 227 additions and 33 deletions.
260 changes: 227 additions & 33 deletions json-schema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,62 +3,69 @@
"$id": "https://stac-extensions.github.io/tiled-assets/v1.0.0/schema.json#",
"title": "Tiled Assets Extension",
"description": "STAC Tiled Assets Extension for STAC Items and STAC Collections.",
"type": "object",
"required": [
"stac_extensions"
],
"properties": {
"stac_extensions": {
"type": "array",
"contains": {
"const": "https://stac-extensions.github.io/tiled-assets/v1.0.0/schema.json"
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"const": "Feature"
}
},
"allOf": [
{
"$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json"
},
{
"$ref": "#/definitions/stac_extensions"
},
{
"$ref": "#/definitions/item-tiles"
}
]
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"const": "Catalog"
}
},
"allOf": [
{
"$ref": "https://schemas.stacspec.org/v1.0.0/catalog-spec/json-schema/catalog.json"
},
{
"$ref": "#/definitions/stac_extensions"
},
{
"$ref": "#/definitions/catalog-collection-tiles"
}
]
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"const": "Collection"
}
},
"allOf": [
{
"$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json"
},
{
"$ref": "#/definitions/stac_extensions"
},
{
"$ref": "#/definitions/catalog-collection-tiles"
}
]
}
],
"definitions": {
"stac_extensions": {
"type": "object",
"required": [
"stac_extensions"
],
"properties": {
"stac_extensions": {
"type": "array",
"contains": {
"const": "https://stac-extensions.github.io/tiled-assets/v1.0.0/schema.json"
}
}
}
},
"catalog-collection-tiles": {
"title": "Tile matrix additions to STAC Collections and Catalogs",
"description": "Allows the definition of tile matrix sets on a Collection or Catalog.",
Expand Down Expand Up @@ -108,7 +115,49 @@
}
},
"tile_matrix_set": {
"$ref": "http://schemas.opengis.net/tms/1.0/json/tms-schema.json"
"$comment": "Should be a $ref to http://schemas.opengis.net/tms/1.0/json/tms-schema.json but it doesn't work",
"type": "object",
"required": ["type", "identifier", "supportedCRS", "tileMatrix"],
"properties": {
"type": {
"description": "Type of the Tile Matrix Set",
"enum": ["TileMatrixSetType"]
},
"title": {
"description": "Title of this tile matrix set, normally used for display to a human",
"type": "string"
},
"abstract": {
"description": "Brief narrative description of this tile matrix set, normally available for display to a human",
"type": "string"
},
"keywords": {
"description": "Unordered list of one or more commonly used or formalized word(s) or phrase(s) used to describe this dataset",
"$ref": "#/definitions/keywords"
},
"identifier": {
"description": "Tile matrix set identifier",
"type": "string"
},
"boundingBox": {
"description": "Minimum bounding rectangle surrounding the tile matrix set, in the supported CRS",
"$ref": "#/definitions/boundingBox"
},
"supportedCRS": {
"description": "Reference to one coordinate reference system (CRS)",
"type": "string",
"format": "uri"
},
"wellKnownScaleSet": {
"description": "Reference to a well-known scale set",
"type": "string",
"format": "uri"
},
"tileMatrix": {
"description": "Describes a scale level and its tile matrix",
"$ref": "#/definitions/tileMatrix"
}
}
},
"tile_matrix_link": {
"type": "object",
Expand Down Expand Up @@ -217,6 +266,151 @@
"description": "Whether or not the pixelbuffer is included images on the right border of the last tile row. Default is `true`."
}
}
},
"keywords": {
"description": "Unordered list of one or more commonly used or formalised word(s) or phrase(s) used to describe this resource",
"type": "array",
"items": {
"type": "string"
}
},
"boundingBox": {
"description": "Minimum bounding rectangle surrounding the tile matrix set, in the supported CRS",
"type": "object",
"required": ["type", "lowerCorner", "upperCorner"],
"properties":
{
"type": {
"description": "Type of the Bounding Bos",
"enum": ["BoundingBoxType"]
},
"crs": {
"description": "",
"type": "string",
"format": "uri"
},
"lowerCorner": {
"description": "",
"type": "array",
"items": {
"type": "number",
"minItems": 2,
"maxItems": 2
}
},
"upperCorner": {
"description": "",
"type": "array",
"items": {
"type": "number",
"minItems": 2,
"maxItems": 2
}
}
}
},
"tileMatrix": {
"type": "array",
"items": {
"type": "object",
"required": ["type", "identifier", "scaleDenominator", "topLeftCorner", "tileWidth", "tileHeight", "matrixWidth", "matrixHeight"],
"properties": {
"type": {
"description": "Type of the Tile Matrix",
"enum": ["TileMatrixType"]
},
"title": {
"description": "Title of this tile matrix set, normally used for display to a human",
"type": "string"
},
"abstract": {
"description": "Brief narrative description of this tile matrix set, normally available for display to a human",
"type": "string"
},
"keywords": {
"description": "Unordered list of one or more commonly used or formalized word(s) or phrase(s) used to describe this dataset",
"$ref": "#/definitions/keywords"
},
"identifier": {
"description": "Tile matrix identifier",
"type": "string"
},
"scaleDenominator": {
"description": "Scale denominator level of this tile matrix",
"type": "number"
},
"topLeftCorner": {
"description": "Position in CRS coordinates of the top-left corner of this tile matrix",
"type": "array",
"items": {
"type": "number",
"minItems": 2,
"maxItems": 2
}
},
"tileWidth": {
"description": "Width of each tile of this tile matrix in pixels",
"type": "number",
"minimum": 1,
"multipleOf" : 1
},
"tileHeight": {
"description": "Height of each tile of this tile matrix in pixels",
"type": "number",
"minimum": 1,
"multipleOf" : 1
},
"matrixWidth": {
"description": "Width of the matrix (number of tiles in width)",
"type": "number",
"minimum": 1,
"multipleOf" : 1
},
"matrixHeight": {
"description": "Height of the matrix (number of tiles in height)",
"type": "number",
"minimum": 1,
"multipleOf" : 1
},
"variableMatrixWidth": {
"description": "Describes the rows that has variable matix width",
"$ref": "#/definitions/variableMatrixWidth"
}
}
}
},
"variableMatrixWidth": {
"description": "List of data structures defining the tiles rows that was variable width",
"type": "array",
"items": {
"description": "Variable Matrix Width data structure",
"type": "object",
"required": ["type", "coalesce", "minTileRow", "maxTileRow"],
"properties": {
"type": {
"description": "Type of the Variable Matrix Width",
"enum": ["VariableMatrixWidthType"]
},
"coalesce" : {
"description": "Coalescence factor",
"type": "number",
"minimum": 2,
"multipleOf" : 1
},
"minTileRow": {
"description": "Minimum tile row index valid for this layer",
"type": "number",
"minimum": 0,
"multipleOf" : 1
},
"maxTileRow": {
"description": "Maximim tile row index valid for this layer",
"type": "number",
"minimum": 0,
"multipleOf" : 1
}
}
}
}
}
}

0 comments on commit 1a45407

Please sign in to comment.