CesiumGS / 3d-tiles

Specification for streaming massive heterogeneous 3D geospatial datasets :earth_americas:
2.09k stars 463 forks source link

MIME type 3D tiles #341

Open volkercoors opened 5 years ago

volkercoors commented 5 years ago

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

pjcozzi commented 5 years ago

CC previous discussion #60

CC glTF https://github.com/KhronosGroup/glTF/issues/412 and https://github.com/KhronosGroup/glTF/issues/943

lilleyse commented 2 years ago

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.

lilleyse commented 2 years ago

CC https://github.com/CesiumGS/3d-tiles/issues/388 - mime types may be used to identify tile content

ptrgags commented 2 years ago

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

erikdahlstrom commented 2 years ago

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).

lilleyse commented 2 years ago

This affects subtrees as well: https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format

lilleyse commented 2 years ago

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

lilleyse commented 11 months ago

See discussion in https://github.com/opengeospatial/ogcapi-3d-geovolumes/issues/13