You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+7-7
Original file line number
Diff line number
Diff line change
@@ -170,7 +170,7 @@ The metadata for each tile - not the actual contents - are defined in JSON. For
170
170
"children": [...]
171
171
}
172
172
```
173
-
The `boundingVolume.region` property is an array of six numbers that define the bounding geographic region in EPSG:4326 coordinates with the order `[west, south, east, north, minimum height, maximum height]`. Longitudes and latitudes are in radians, and heights are in meters above (or below) the [WGS84 ellipsoid](http://earth-info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf). Besides `region`, other bounding volumes, such as `box` and `sphere`, may be used.
173
+
The `boundingVolume.region` property is an array of six numbers that define the bounding geographic region in WGS84 / EPSG:4326 coordinates with the order `[west, south, east, north, minimum height, maximum height]`. Longitudes and latitudes are in radians, and heights are in meters above (or below) the [WGS84 ellipsoid](http://earth-info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf). Besides `region`, other bounding volumes, such as `box` and `sphere`, may be used.
174
174
175
175
The `geometricError` property is a nonnegative number that defines the error, in meters, introduced if this tile is rendered and its children are not. At runtime, the geometric error is used to compute _Screen-Space Error_ (SSE), i.e., the error measured in pixels. The SSE determines _Hierarchical Level of Detail_ (HLOD) refinement, i.e., if a tile is sufficiently detailed for the current view or if its children should be considered.
176
176
@@ -198,15 +198,15 @@ An optional `transform` property (not shown above) defines a 4x4 affine transfor
198
198
199
199
### Coordinate System and Units
200
200
201
-
3D Tiles use a right-handed Cartesian coordinate system, that is, the cross product of x and y yields z. 3D Tiles define the z axis as up for local Cartesian coordinate systems (see the [Tile transform](#tile-transform) section). A tileset's global coordinate system will often be [ECEF](https://en.wikipedia.org/wiki/ECEF) coordinates, but it doesn't have to be, e.g., a power plant may be defined fully in its local coordinate system for using with a modeling tool without a geospatial context.
201
+
3D Tiles use a right-handed Cartesian coordinate system, that is, the cross product of x and y yields z. 3D Tiles define the z axis as up for local Cartesian coordinate systems (see the [Tile transform](#tile-transform) section). A tileset's global coordinate system will often be [WGS84 coordinates](http://earth-info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf), but it doesn't have to be, e.g., a power plant may be defined fully in its local coordinate system for using with a modeling tool without a geospatial context.
202
202
203
-
`b3dm` and `i3dm` tiles embed glTF. According to the [glTF spec](https://github.com/KhronosGroup/glTF/tree/master/specification/1.0#coordinate-system-and-units) glTF uses a right-handed coordinate system and defines the y axis as up. By default embedded models are considered to be y-up, but in order to support a variety of source data, including models defined directly in [ECEF](https://en.wikipedia.org/wiki/ECEF) coordinates, embedded glTF models may be defined as x-up, y-up, or z-up with the `asset.gltfUpAxis` property of `tileset.json`. In general an implementation should transform glTF assets to z-up at runtime to be consistent with the z-up coordinate system of the bounding volume hierarchy.
203
+
`b3dm` and `i3dm` tiles embed glTF. According to the [glTF spec](https://github.com/KhronosGroup/glTF/tree/master/specification/1.0#coordinate-system-and-units) glTF uses a right-handed coordinate system and defines the y axis as up. By default embedded models are considered to be y-up, but in order to support a variety of source data, including models defined directly in WGS84 coordinates, embedded glTF models may be defined as x-up, y-up, or z-up with the `asset.gltfUpAxis` property of `tileset.json`. In general an implementation should transform glTF assets to z-up at runtime to be consistent with the z-up coordinate system of the bounding volume hierarchy.
204
204
205
205
The units for all linear distances are meters.
206
206
207
207
All angles are in radians.
208
208
209
-
3D Tiles do not explicitly store Cartographic coordinates (longitude, latitude, and height); these values are implicit in ECEF coordinates, which are efficient for the GPU to render since they do not require a non-affine coordinate transformation. A 3D Tiles tileset can include application-specific metadata, such as Cartographic coordinates, but the semantics are not part of the 3D Tiles specification.
209
+
3D Tiles do not explicitly store Cartographic coordinates (longitude, latitude, and height); these values are implicit in WGS84 Cartesian coordinates, which are efficient for the GPU to render since they do not require a non-affine coordinate transformation. A 3D Tiles tileset can include application-specific metadata, such as Cartographic coordinates, but the semantics are not part of the 3D Tiles specification.
210
210
211
211
### Tile transform
212
212
@@ -218,9 +218,9 @@ The `transform` property applies to:
218
218
*`tile.content`
219
219
* Each feature's position.
220
220
* Each feature's normal should be transformed by the top-left 3x3 matrix of the inverse-transpose of `transform` to account for [correct vector transforms when scale is used](http://www.realtimerendering.com/resources/RTNews/html/rtnews1a.html#art4).
221
-
*`content.boundingVolume`, except when `content.boundingVolume.region` is defined, which is explicitly in [EPSG:4326 coordinates](http://spatialreference.org/ref/epsg/wgs-84/).
222
-
*`tile.boundingVolume`, except when `tile.boundingVolume.region` is defined, which is explicitly in EPSG:4326 coordinates.
223
-
*`tile.viewerRequestVolume`, except when `tile.viewerRequestVolume.region` is defined, which is explicitly in EPSG:4326 coordinates.
221
+
*`content.boundingVolume`, except when `content.boundingVolume.region` is defined, which is explicitly in [WGS84 / EPSG:4326 coordinates](http://spatialreference.org/ref/epsg/wgs-84/).
222
+
*`tile.boundingVolume`, except when `tile.boundingVolume.region` is defined, which is explicitly in WGS84 / EPSG:4326 coordinates.
223
+
*`tile.viewerRequestVolume`, except when `tile.viewerRequestVolume.region` is defined, which is explicitly in WGS84 / EPSG:4326 coordinates.
224
224
225
225
The `transform` property does not apply to `geometricError`, i.e., the scale defined by `transform` does not scale the geometric error; the geometric error is always defined in meters.
See [Implementation Notes](#implementation-notes) for details about padding between the json and binary sections.
30
+
See [Implementation Notes](#implementation-notes) for details about padding between the JSON and binary sections.
31
31
32
32
When a tile format includes a Feature Table, the Feature Table immediately follows the tile's header. The header will also contain `featureTableJSONByteLength` and `featureTableBinaryByteLength``uint32` fields, which can be used to extract each respective part of the Feature Table.
Copy file name to clipboardexpand all lines: schema/boundingVolume.schema.json
+1-1
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@
16
16
},
17
17
"region" : {
18
18
"type" : "array",
19
-
"description" : "An array of six numbers that define a bounding geographic region in EPSG:4326 coordinates with the order [west, south, east, north, minimum height, maximum height]. Longitudes and latitudes are in radians, and heights are in meters above (or below) the WGS84 ellipsoid.",
19
+
"description" : "An array of six numbers that define a bounding geographic region in WGS84 / EPSG:4326 coordinates with the order [west, south, east, north, minimum height, maximum height]. Longitudes and latitudes are in radians, and heights are in meters above (or below) the WGS84 ellipsoid.",
Copy file name to clipboardexpand all lines: schema/tile.schema.json
+1-1
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@
25
25
},
26
26
"transform" : {
27
27
"type" : "array",
28
-
"description" : "A floating-point 4x4 affine transformation matrix, stored in column-major order, that transforms the tile's content, i.e., its features and content.boundingVolume, and boundingVolume and viewerRequestVolume from the tile's local coordinate system to the parent tile's coordinate system, or tileset's coordinate system in the case of the root tile. transform does not apply to geometricError nor does it apply any volume property when the volume is a region, which is defined in EPSG:4326 coordinates.",
28
+
"description" : "A floating-point 4x4 affine transformation matrix, stored in column-major order, that transforms the tile's content, i.e., its features and content.boundingVolume, and boundingVolume and viewerRequestVolume from the tile's local coordinate system to the parent tile's coordinate system, or tileset's coordinate system in the case of the root tile. transform does not apply to geometricError nor does it apply any volume property when the volume is a region, which is defined in WGS84 / EPSG:4326 coordinates.",
0 commit comments