I3SDataProvider

new Cesium.I3SDataProvider(options)

An I3SDataProvider is the main public class for I3S support. The url option should return a scene object. Currently supported I3S versions are 1.6 and 1.7/1.8 (OGC I3S 1.2). I3SFeature and I3SNode classes implement the Object Model for I3S entities, with public interfaces.
This object is normally not instantiated directly, use I3SDataProvider.fromUrl.
Name Type Description
options I3SDataProvider.ConstructorOptions An object describing initialization options
Examples:
try {
  const i3sData = await I3SDataProvider.fromUrl(
    "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0"
  );
  viewer.scene.primitives.add(i3sData);
} catch (error) {
  console.log(`There was an error creating the I3S Data Provider: ${error}`);
}
try {
  const geoidService = await Cesium.ArcGISTiledElevationTerrainProvider.fromUrl(
    "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/EGM2008/ImageServer"
  );
  const i3sData = await I3SDataProvider.fromUrl(
    "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0", {
      geoidTiledTerrainProvider: geoidService
  });
  viewer.scene.primitives.add(i3sData);
} catch (error) {
  console.log(`There was an error creating the I3S Data Provider: ${error}`);
}
See:

Members

readonly adjustMaterialAlphaMode : boolean

Determines if the alpha mode of the material will be adjusted depending on the color vertex attribute.

readonly applySymbology : boolean

Determines if the I3S symbology will be parsed and applied for the layers.

readonly calculateNormals : boolean

Determines if the flat normals will be generated for I3S geometry without normals.
Gets the I3S data for this object.
Gets the extent covered by this I3S.
The terrain provider referencing the GEOID service to be used for orthometric to ellipsoidal conversion.
Gets the collection of layers.
Gets a human-readable name for this dataset.
The resource used to fetch the I3S dataset.
Determines if the dataset will be shown.

readonly showFeatures : boolean

Determines if the features will be shown.
Gets the collection of building sublayers.

Methods

static Cesium.I3SDataProvider.fromUrl(url, options)Promise.<I3SDataProvider>

Creates an I3SDataProvider. Currently supported I3S versions are 1.6 and 1.7/1.8 (OGC I3S 1.2).
Name Type Description
url string | Resource The url of the I3S dataset, which should return an I3S scene object
options I3SDataProvider.ConstructorOptions An object describing initialization options
Returns:
Examples:
try {
  const i3sData = await I3SDataProvider.fromUrl(
    "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0"
  );
  viewer.scene.primitives.add(i3sData);
} catch (error) {
  console.log(`There was an error creating the I3S Data Provider: ${error}`);
}
try {
  const geoidService = await Cesium.ArcGISTiledElevationTerrainProvider.fromUrl(
    "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/EGM2008/ImageServer"
  );
  const i3sData = await I3SDataProvider.fromUrl(
    "https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/Frankfurt2017_vi3s_18/SceneServer/layers/0", {
      geoidTiledTerrainProvider: geoidService
  });
  viewer.scene.primitives.add(i3sData);
} catch (error) {
  console.log(`There was an error creating the I3S Data Provider: ${error}`);
}
Destroys the WebGL resources held by this object. Destroying an object allows for deterministic release of WebGL resources, instead of relying on the garbage collector to destroy this object.

Once an object is destroyed, it should not be used; calling any function other than isDestroyed will result in a DeveloperError exception. Therefore, assign the return value (undefined) to the object as done in the example.

Throws:
  • DeveloperError : This object was destroyed, i.e., destroy() was called.
See:

filterByAttributes(filters)Promise.<void>

Filters the drawn elements of a scene to specific attribute names and values
Name Type Default Description
filters Array.<I3SNode.AttributeFilter> [] optional The collection of attribute filters
Returns:
A promise that is resolved when the filter is applied

getAttributeNames()Array.<string>

Returns the collection of names for all available attributes
Returns:
The collection of attribute names

getAttributeValues(name)Array.<string>

Returns the collection of values for the attribute with the given name
Name Type Description
name string The attribute name
Returns:
The collection of attribute values

isDestroyed()boolean

Returns true if this object was destroyed; otherwise, false.

If this object was destroyed, it should not be used; calling any function other than isDestroyed will result in a DeveloperError exception.

Returns:
true if this object was destroyed; otherwise, false.
See:

Type Definitions

Cesium.I3SDataProvider.ConstructorOptions

Initialization options for the I3SDataProvider constructor
Properties:
Name Type Attributes Default Description
name string <optional>
The name of the I3S dataset.
show boolean <optional>
true Determines if the dataset will be shown.
geoidTiledTerrainProvider ArcGISTiledElevationTerrainProvider | Promise.<ArcGISTiledElevationTerrainProvider> <optional>
Tiled elevation provider describing an Earth Gravitational Model. If defined, geometry will be shifted based on the offsets given by this provider. Required to position I3S data sets with gravity-related height at the correct location.
cesium3dTilesetOptions Cesium3DTileset.ConstructorOptions <optional>
Object containing options to pass to an internally created Cesium3DTileset. See Cesium3DTileset for list of valid properties. All options can be used with the exception of url and show which are overridden by values from I3SDataProvider.
showFeatures boolean <optional>
false Determines if the features will be shown.
adjustMaterialAlphaMode boolean <optional>
false The option to adjust the alpha mode of the material based on the transparency of the vertex color. When true, the alpha mode of the material (if not defined) will be set to BLEND for geometry with any transparency in the color vertex attribute.
applySymbology boolean <optional>
false Determines if the I3S symbology will be parsed and applied for the layers.
calculateNormals boolean <optional>
false Determines if the flat normals will be generated for I3S geometry without normals.
Examples:
// Increase LOD by reducing SSE
const cesium3dTilesetOptions = {
  maximumScreenSpaceError: 1,
};
const i3sOptions = {
  cesium3dTilesetOptions: cesium3dTilesetOptions,
};
// Set a custom outline color to replace the color defined in I3S symbology
const cesium3dTilesetOptions = {
  outlineColor: Cesium.Color.BLUE,
};
const i3sOptions = {
  cesium3dTilesetOptions: cesium3dTilesetOptions,
  applySymbology: true,
};
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.