Open volkercoors opened 6 years ago
CC previous discussion #60
CC glTF https://github.com/KhronosGroup/glTF/issues/412 and https://github.com/KhronosGroup/glTF/issues/943
We may not go through the process of defining mime types for b3dm, i3dm, pnts, cmpt since glTF will be the most common tile format for future versions of 3D Tiles starting with 3DTILES_content_gltf.
For glTF the mime types are model/gltf-binary
for GLB and model/gltf+json
for glTF JSON.
We may want to define a mime type for tileset JSON though.
CC https://github.com/CesiumGS/3d-tiles/issues/388 - mime types may be used to identify tile content
We may want to define a mime type for tileset JSON though.
Agreed, one pain point we encountered in the CesiumJS implementation of 3DTILES_content_gltf is that there's no way to tell if a JSON file is a glTF or an external tileset until you download it, parse the JSON and check what properties a JSON has. (e.g. both have an asset
property, but only 3D Tiles has a root
as a required field. You can see how that's done in this function
This also affects the external 3DTILES_metadata schemas (https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_metadata#schema), which are JSON. Ideally they should also have their own mime type (and possibly file extension).
This affects subtrees as well: https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
See "File Extensions and Media Types" in the glTF spec for reference: https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html#file-extensions-and-media-types
See discussion in https://github.com/opengeospatial/ogcapi-3d-geovolumes/issues/13
In OGC Testbed 14 we are implementing a first prototype that kind of connects 3DPS and WFS 3.0 (under development).
Basically, it is a defintion of requests to get access to specific 3d tiles data sets such as https://services.thisserverisnotavailableyet.de/t14/wfs3/3D_CityModel_manhattan/collections/buildings/scene?FORMAT=application/json&bbox=-74.00635826977239,40.71778771238832,-73.97393297660074,40.75070138933127
The server shall deliver a 3D scene of Manhattan using 3D tiles in this example. we will use the Fraunhofer server implementation from Testbed 13. The main difference is the structure of the request.
The implementation will be open source as a public project on gitlab: https://gitlab.com/volkercoors/ogc-testbed-14-wfs-and-3dps
Not much content yet, the entire discussion startet last week at the OGC TC meeting in Stuttgart.
However, we should have registered (and more specific) MIME type for 3d tiles.
From the spec: https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#file-extensions-and-mime-types 3D Tiles uses the following file extensions and MIME types.
Tileset files use the .json extension and the application/json MIME type. Tile content files use the file type and MIME format specific to their tile format specification. Batched 3D Model tiles use the .b3dm extension and application/octet-stream MIME type. Tileset style files use the .json extension and the application/json MIME type.
The "octet-stream" subtype is used to indicate that a body contains arbitrary binary data. https://www.iana.org/assignments/media-types/application/octet-stream
The problem is that we do not know what we get from the MIME type as it is too general. It basically says JSON and some arbitrary binary data. Do you have any plans to register a MIME type for 3d tiles?
ESRI’s I3S uses the mime type application/vnd.esri.i3s.json+gzip (not registered yet as far as I've seen).
This is helpful for us, as it would allow to specify the delivery format in the request by MIME type.
proposal: application/vnd.3dtiles.json+octet-stream