An OGC tileset model connects to a 3D tile service to retrieve tiles for a TileSet3DLayer. Its constructor should not be called directly. Instead, use the static create method:

  // Create a model for the OGC 3D tileset
const url = "";
OGC3DTilesModel.create(url).then(function(model) {
//Create a layer for the model
const layer = new TileSet3DLayer(model);
//Add the layer to the map

Supported versions

The current LuciadRIA OGC 3D Tiles model supports the OGC 3D Tiles 1.0 specification. It explicitly supports:

  • Decoding from the `tileset.json` file entry point, with full metadata support, including property values and ranges.
  • B3DM payload for the visualization of 3D meshes.
  • Both GLTF 1.0 and GLTF 2.0 in the B3DM payload.
  • Draco compressed meshes in the GLTF data.
  • KTX2/CRN/WEBP/JPG/PNG images in the GLTF data.
  • All PBR shading properties of the GLTF format.
  • GLTF models referencing multiple textures.
  • PNTS payload for the visualization of point clouds, including Draco compression.
  • Additive and Replace refinement for `tileset.json`.
  • Styling and filtering of point cloud data sets with full expression language support for dynamic, GPU-based styling and filtering of point clouds.
  • Quality management to trade off between visual quality and performance, through the quality factor setting in the API.

The following limitations hold for OGC 3D Tiles:

  • Instanced 3D Model (I3DM) tiles are not supported.
  • Composite Tile Model (CMPT) tiles are not supported.
  • B3DM does not support animations.
  • CRN images may only contain DXT1 compatible data.
  • KTX2 images must be created from the Basis Universal Texture tool.
  • Embedded binary textures are supported, but externally referenced textures are not.
  • glTF materials extensions are not supported.
  • Declarative Styling in `tileset.json` is not supported directly, but can be achieved using LuciadRIA expressions, based on the `ExpressionFactory`.
  • Complex, hierarchical batch table properties are not supported.


  • OGC3DTilesModel




  • get bounds(): Bounds
  • Bounds of the model, in the model reference. If the model has no reference, it will default to a cartesian 3D reference.

    Returns Bounds

  • get credentials(): boolean
  • Indicates whether credentials should be included with HTTP requests.

    Set this to true if the server requires credentials, like HTTP basic authentication headers or cookies. You should disable credentials if the server is configured to allow cross-origin requests from all domains (Acces-Control-Allow-Origin=*). If the server allows CORS requests from all domains, the browser will block all requests where credentials=true.

    Once set, all subsequent HTTP requests will use the newly set value.

    The default value is false.

    Returns boolean

  • set credentials(value): void
  • Parameters

    • value: boolean

    Returns void

  • get orientedBox(): OrientedBox
  • The orientedBox is a read-only attribute that contains a tight-fitting 3D box around the dataset. The OrientedBox is defined in the same reference as this model.

    Returns OrientedBox



  • get requestHeaders(): null | HttpRequestHeaders
  • Headers to send with every HTTP request.

    An object literal that represents the headers to send with every HTTP request. The property names represent HTTP header names, the property values represent the HTTP header values. This property can be set dynamically (post-construction). Once set, all subsequent HTTP requests will use the newly set headers.

    Note that when custom headers are being sent to a server on another domain, the server will have to properly respond to pre-flight CORS requests (a HTTP OPTION request sent by the browser before doing the actual request). The server has to indicate that the header can be used in the actual request, by including it in the pre-flight's Access-Control-Allow-Headers response header.

    The default value is null.

    Returns null | HttpRequestHeaders

  • set requestHeaders(value): void
  • Parameters

    Returns void

  • get requestParameters(): null | HttpRequestParameters
  • Custom request parameters to send along with 3DTiles requests. The object literal can contain simple key/value pairs. Accepted values are strings, numbers and booleans. A ProgrammingError will be thrown if values of another type are used. Values must not be URL encoded.

    Assignments of other values than object literals to requestParameters will throw an Error. Clearing the parameters can be done by assigning null or an empty object literal to requestParameters.

    Returns null | HttpRequestParameters



  • set requestParameters(value): void
  • Parameters

    Returns void

  • get url(): string
  • The URL of this OGC 3D Tiles tileset model. It is the URL where the root tileset.json resides, including "tileset.json" itself.

    For example, if tileset.json is located at "", then the `url` is "".

    Returns string

  • get urlParams(): string
  • The parameter string of model's URL.

    Returns string


    Please use requestParameters


  • Override to provide attribution strings for your OGC3DTilesModel. By default, this returns an empty array.


    Returns string[]



  • Override to provide a attributions-logo for your OGC3DTilesModel. By default, this returns null.

    Returns null | string



  • Creates an OGC 3D Tiles Model for a given 3D tile service


    • url: string

      The URI of the OGC 3D Tiles Model. It is the URL where the root tileset.json resides, including "tileset.json" itself.

    • Optional options: CreateOGC3DTilesModelOptions

      An object literal specifying options for the creation of the OGC 3D Tiles Model.

    Returns Promise<OGC3DTilesModel>

    A promise for an OGC3DTilesModel. If the model cannot be created then the promise is rejected with either RequestError.