3D Tiles
specdraftimplproposalPublish geographic data as 3D Tiles.
Scope
The building block 3D Tiles enables publishing of 3D Tiles (1.0 or 1.1) from a 3D Tiles Provider.
The 3D Tiles can be inspected in a web browser using an integrated Cesium client.
Conformance Classes
3D Tiles implements support for the draft specification OGC API - 3D GeoVolumes.
Operations
| Resource | Path | Methods | Media Types | Description |
|---|---|---|---|---|
3D Tiles Tileset | collections/{collectionId}/3dtiles | GET | Access a 3D Tiles 1.0 or 1.1 tileset. | |
3D Tiles Files | collections/{collectionId}/3dtiles/{subPath:.*} | GET | Access a file in a 3D Tiles tileset. |
Path Parameters
| Name | Resources | Description |
|---|---|---|
collectionId | 3D Tiles Tileset, Subtree, Content | The identifier of the feature collection. |
subPath | 3D Tiles file | The file name. |
Query Parameters
| Name | Resources | Description |
|---|---|---|
f | 3D Tiles Tileset | Select the output format of the response. If no value is provided, the standard HTTP rules apply, i.e., the "Accept" header will be used to determine the format. |
Configuration
Options
| Name | Default | Description | Type | Since |
|---|---|---|---|---|
buildingBlock | Always TILES3D. | string | v2.0 | |
enabled | false | Enable the building block? | boolean | v2.0 |
tileProvider | null | Specifies the data source for the tiles, see Tile Providers. | string | v4.6 |
tileProviderTileset | __all__ | {collectionId} | Specifies the tileset from the tile provider that should be used. The default is __all__ for dataset tiles and {collectionId} for collection tiles. | string | v4.6 |
firstLevelWithContent | 0 | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) The first level of the tileset which will contain buildings. The value will depend on the spatial extent of the dataset, i.e., at what level of the implicit tiling scheme large buildings can be displayed. | number | v3.4 |
maxLevel | 0 | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) The last level of the tileset which will contain buildings. The value will depend on the spatial extent of the dataset, i.e., at what level of the implicit tiling scheme small buildings can be displayed in detail. | number | v3.4 |
contentFilters | [] | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) A CQL2 text filter expression for each level between the firstLevelWithContent and the maxLevel to select the buildings to include in the tile on that level. Since the refinement strategy is always ADD, specify disjoint filter expressions, so that each building will be included on exactly one level. | array | v3.4 |
tileFilters | [ ... ] | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) A CQL2 text filter expression for each level between the firstLevelWithContent and the maxLevel to select the buildings to include in the tile on that level or in any of the child tiles. This filter expression is the same as all the contentFilters on this or higher levels combined with an OR. This is also the default value. However, depending on the filter expressions, this may lead to inefficient tile filters and to improve performance the tile filters can also be specified explicitly. | array | v3.4 |
geometricErrorRoot | 0 | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) The error, in meters, introduced if a tile at level 0 (root) is rendered and its children at level 1 are not. At runtime, the geometric error is used to compute screen space error (SSE), i.e., the error measured in pixels. | number | v3.4 |
subtreeLevels | 3 | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) The number of levels in each Subtree. | number | v3.4 |
seeding | {} | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) Controls how and when tiles are precomputed, see Seeding options in the tile provider "Features". | object | v3.4 |
clampToEllipsoid | false | Deprecated (from v5.0 on you have to use 3D Tiles Provider entities) If set to true, each building will be translated vertically so that the bottom of the building is on the WGS 84 ellipsoid. Use this option, if the data is intended to be rendered without a terrain model. | boolean | v3.4 |
ionAccessToken | null | If the 3D Tiles should be rendered in the integrated Cesium client using the terrain model from Cesium Ion, specify the access token to use in requests. | string | v3.4 |
maptilerApiKey | null | If the 3D Tiles should be rendered in the integrated Cesium client using the terrain model from MapTiler, specify the api key to use in requests. | string | v3.4 |
customTerrainProviderUri | null | If the 3D Tiles should be rendered in the integrated Cesium client using an external Terrain Provider, specify the URI of the provider. | string | v3.4 |
terrainHeightDifference | 0 | If the terrain does not match the height values in the data, this option can be used to translate the buildings vertically in the integrated Cesium client. | number | v3.4 |
style | DEFAULT | A style in the style repository of the collection to be used in maps with 3D Tiles. With DEFAULT the defaultStyle from the HTML building block is used. With NONE the default 3D Tiles style is used. The style must be available in the 3D Tiles Styling format. If no style is found, 'NONE' is used. | string | v2.0 |
This building block does not require or support any additional configuration files.
Examples
API
- buildingBlock: TILES3D
enabled: true
tileProvider: example-3dtiles
3D Tiles Provider
id: example-3dtiles
providerType: 3DTILE
providerSubType: FEATURES
seeding:
runOnStartup: true
purge: false
tilesets:
building:
id: building
geometricErrorRoot: 8192
clampToEllipsoid: true
subtreeLevels: 3
contentLevels:
min: 5
max: 9
contentFilters:
- diameter3d("bbox")>200
- diameter3d("bbox")<=200 and diameter3d("bbox")>100
- diameter3d("bbox")<=100 and diameter3d("bbox")>40
- diameter3d("bbox")<=40 and diameter3d("bbox")>18
- diameter3d("bbox")<=18
tileFilters:
- true
- diameter3d("bbox")<=200
- diameter3d("bbox")<=100
- diameter3d("bbox")<=40
- diameter3d("bbox")<=18