# MapGISM3DSet

#### new Cesium.MapGISM3DSet(options)
Scene/MapGISM3DSet.js 180

Name | Type | Description
--- | --- | ---

`options`

Object

Object with the following properties:

Name | Type | Default | Description
--- | --- | --- | ---
`url` | Resource | String | Promise.<Resource> | Promise.<String> |  | The url to a tileset.json file or to a directory containing a tileset.json file.
`show` | Boolean | `true` | optional Determines if the tileset will be shown.
`modelMatrix` | Matrix4 | `Matrix4.IDENTITY` | optional A 4x4 transformation matrix that transforms the tileset's root tile.
`shadows` | ShadowMode | `ShadowMode.ENABLED` | optional Determines whether the tileset casts or receives shadows from each light source.
`maximumScreenSpaceError` | Number | `16` | optional The maximum screen space error used to drive level of detail refinement.
`maximumMemoryUsage` | Number | `512` | optional The maximum amount of memory in MB that can be used by the tileset.
`cullWithChildrenBounds` | Boolean | `true` | optional Optimization option. Whether to cull tiles using the union of their children bounding volumes.
`cullRequestsWhileMoving` | Boolean | `true` | optional Optimization option. Don't request tiles that will likely be unused when they come back because of the camera's movement.
`cullRequestsWhileMovingMultiplier` | Number | `60.0` | optional Optimization option. Multiplier used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.
`preloadWhenHidden` | Boolean | `false` | optional Preload tiles when `tileset.show` is `false`. Loads tiles as if the tileset is visible but does not render them.
`preloadFlightDestinations` | Boolean | `true` | optional Optimization option. Preload tiles at the camera's flight destination while the camera is in flight.
`preferLeaves` | Boolean | `false` | optional Optimization option. Prefer loading of leaves first.
`dynamicScreenSpaceError` | Boolean | `false` | optional Optimization option. Reduce the screen space error for tiles that are further away from the camera.
`dynamicScreenSpaceErrorDensity` | Number | `0.00278` | optional Density used to adjust the dynamic screen space error, similar to fog density.
`dynamicScreenSpaceErrorFactor` | Number | `4.0` | optional A factor used to increase the computed dynamic screen space error.
`dynamicScreenSpaceErrorHeightFalloff` | Number | `0.25` | optional A ratio of the tileset's height at which the density starts to falloff.
`progressiveResolutionHeightFraction` | Number | `0.3` | optional Optimization option. If between (0.0, 0.5], tiles at or above the screen space error for the reduced screen resolution of `progressiveResolutionHeightFraction*screenHeight` will be prioritized first. This can help get a quick layer of tiles down while full resolution tiles continue to load.
`foveatedScreenSpaceError` | Boolean | `true` | optional Optimization option. Prioritize loading tiles in the center of the screen by temporarily raising the screen space error for tiles around the edge of the screen. Screen space error returns to normal once all the tiles in the center of the screen as determined by the `Cesium3DTileset#foveatedConeSize` are loaded.

`foveatedConeSize`

Number

`0.1`

optional Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the cone size that determines which tiles are deferred. Tiles that are inside this cone are loaded immediately. Tiles outside the cone are potentially deferred based on how far outside the cone they are and their screen space error. This is controlled by `Cesium3DTileset#foveatedInterpolationCallback` and `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation`. Setting this to 0.0 means the cone will be the line formed by the camera position and its view direction. Setting this to 1.0 means the cone encompasses the entire field of view of the camera, disabling the effect.

`foveatedMinimumScreenSpaceErrorRelaxation`

Number

`0.0`

optional Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the starting screen space error relaxation for tiles outside the foveated cone. The screen space error will be raised starting with tileset value up to `Cesium3DTileset#maximumScreenSpaceError` based on the provided `Cesium3DTileset#foveatedInterpolationCallback`.

`foveatedInterpolationCallback`

Cesium3DTileset~foveatedInterpolationCallback

`Math.lerp`

optional Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control how much to raise the screen space error for tiles outside the foveated cone, interpolating between `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation` and `Cesium3DTileset#maximumScreenSpaceError`

`foveatedTimeDelay`

Number

`0.2`

optional Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control how long in seconds to wait after the camera stops moving before deferred tiles start loading in. This time delay prevents requesting tiles around the edges of the screen when the camera is moving. Setting this to 0.0 will immediately request all tiles in any given view.

`skipLevelOfDetail` | Boolean | `true` | optional Optimization option. Determines if level of detail skipping should be applied during the traversal.
`baseScreenSpaceError` | Number | `1024` | optional When `skipLevelOfDetail` is `true`, the screen space error that must be reached before skipping levels of detail.
`skipScreenSpaceErrorFactor` | Number | `16` | optional When `skipLevelOfDetail` is `true`, a multiplier defining the minimum screen space error to skip. Used in conjunction with `skipLevels` to determine which tiles to load.
`skipLevels` | Number | `1` | optional When `skipLevelOfDetail` is `true`, a constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped. Used in conjunction with `skipScreenSpaceErrorFactor` to determine which tiles to load.
`immediatelyLoadDesiredLevelOfDetail` | Boolean | `false` | optional When `skipLevelOfDetail` is `true`, only tiles that meet the maximum screen space error will ever be downloaded. Skipping factors are ignored and just the desired tiles are loaded.
`loadSiblings` | Boolean | `false` | optional When `skipLevelOfDetail` is `true`, determines whether siblings of visible tiles are always downloaded during traversal.
`clippingPlanes` | ClippingPlaneCollection |  | optional The `ClippingPlaneCollection` used to selectively disable rendering the tileset.
`classificationType` | ClassificationType |  | optional Determines whether terrain, 3D Tiles or both will be classified by this tileset. See `Cesium3DTileset#classificationType` for details about restrictions and limitations.
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid determining the size and shape of the globe.
`pointCloudShading` | Object |  | optional Options for constructing a `PointCloudShading` object to control point attenuation based on geometric error and lighting.
`imageBasedLightingFactor` | Cartesian2 | `new Cartesian2(1.0, 1.0)` | optional Scales the diffuse and specular image-based lighting from the earth, sky, atmosphere and star skybox.
`lightColor` | Cartesian3 |  | optional The color and intensity of the sunlight used to shade models.
`luminanceAtZenith` | Number | `0.5` | optional The sun's luminance at the zenith in kilo candela per meter squared to use for this model's procedural environment map.
`sphericalHarmonicCoefficients` | Array.<Cartesian3> |  | optional The third order spherical harmonic coefficients used for the diffuse color of image-based lighting.
`specularEnvironmentMaps` | String |  | optional A URL to a KTX file that contains a cube map of the specular lighting and the convoluted specular mipmaps.
`debugHeatmapTilePropertyName` | String |  | optional The tile variable to colorize as a heatmap. All rendered tiles will be colorized relative to each other's specified variable value.
`debugFreezeFrame` | Boolean | `false` | optional For debugging only. Determines if only the tiles from last frame should be used for rendering.
`debugColorizeTiles` | Boolean | `false` | optional For debugging only. When true, assigns a random color to each tile.
`debugWireframe` | Boolean | `false` | optional For debugging only. When true, render's each tile's content as a wireframe.
`debugShowBoundingVolume` | Boolean | `false` | optional For debugging only. When true, renders the bounding volume for each tile.
`debugShowContentBoundingVolume` | Boolean | `false` | optional For debugging only. When true, renders the bounding volume for each tile's content.
`debugShowViewerRequestVolume` | Boolean | `false` | optional For debugging only. When true, renders the viewer request volume for each tile.
`debugShowGeometricError` | Boolean | `false` | optional For debugging only. When true, draws labels to indicate the geometric error of each tile.
`debugShowRenderingStatistics` | Boolean | `false` | optional For debugging only. When true, draws labels to indicate the number of commands, points, triangles and features for each tile.
`debugShowMemoryUsage` | Boolean | `false` | optional For debugging only. When true, draws labels to indicate the texture and geometry memory in megabytes used by each tile.
`debugShowUrl` | Boolean | `false` | optional For debugging only. When true, draws labels to indicate the url of each tile.
`maxLoadLevel` | Number | `20` | optional M3D缓存最大的显示级数控制
`useIDB` | Boolean | `false` | optional When true,provide offline access to data,each tile will be stored in IndexedDB after received.
`indexedDBRequest` | TransactionImplement |  | optional Options for constructing a `TransactionImplement` to store data in IndexedDB, when useIDB is true.

##### Example:

    var tileset = scene.primitives.add(new Cesium.MapGISM3DSet({
         url : 'http://localhost:8086/M3D/OSGB/1.0/dayantaM3D/dayanta.mcj'
    }));

### Members

#### _attributeTexture : Object
Scene/MapGISM3DSet.js 912

属性体数据更新的纹理图片

Default Value: `undefined`

#### _useAttributeTexture : Boolean
Scene/MapGISM3DSet.js 920

支持属性体数据进行色表更新

Default Value: `false`

#### allTilesLoaded : Event
Scene/MapGISM3DSet.js 496

The event fired to indicate that all tiles that meet the screen space error this frame are loaded. The tileset is completely loaded for this view.

This event is fired at the end of the frame after the scene is rendered.

Default Value: `new Event()`

##### Example:

    tileset.allTilesLoaded.addEventListener(function() {
        console.log('All tiles are loaded');
    });

##### See:

- MapGISM3DSet#tilesLoaded

#### readonlyasset : Object
Scene/MapGISM3DSet.js 1103

Gets the tileset's asset object property, which contains metadata about the tileset.

See the asset schema in the 3D Tiles spec for the full set of properties.

#### baseMinError
Scene/MapGISM3DSet.js 1680

最小基准 小于这个容差的都设置为0 这个代表最后一个级别的error

#### readonlybasePath : String
Scene/MapGISM3DSet.js 1277

The base path that non-absolute paths in tileset.json are relative to.

Deprecated: true

#### baseScreenSpaceError : Number
Scene/MapGISM3DSet.js 647

The screen space error that must be reached before skipping levels of detail.

Only used when `MapGISM3DSet#skipLevelOfDetail` is `true`.

Default Value: `1024`

#### readonlyboundingSphere : BoundingSphere
Scene/MapGISM3DSet.js 1449

The tileset's bounding sphere.

##### Example:

    var tileset = viewer.scene.primitives.add(new Cesium.MapGISM3DSet({
        url : 'http://localhost:8002/tilesets/Seattle'
    }));

    tileset.readyPromise.then(function(tileset) {
        // Set the camera to view the newly added tileset
        viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0));
    });

#### readonlyclassificationType : ClassificationType
Scene/MapGISM3DSet.js 1585

Determines whether terrain, 3D Tiles or both will be classified by this tileset.

This option is only applied to tilesets containing batched 3D models, geometry data, or vector data. Even when undefined, vector data and geometry data must render as classifications and will default to rendering on both terrain and other 3D Tiles tilesets.

When enabled for batched 3D model tilesets, there are a few requirements/limitations on the glTF:

- POSITION and _BATCHID semantics are required.
- All indices with the same batch id must occupy contiguous sections of the index buffer.
- All shaders and techniques are ignored. The generated shader simply multiplies the position by the model-view-projection matrix.
- The only supported extensions are CESIUM_RTC and WEB3D_quantized_attributes.
- Only one node is supported.
- Only one mesh per node is supported.
- Only one primitive per mesh is supported.

Default Value: `undefined`

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### colorBlendAmount : Number
Scene/MapGISM3DSet.js 442

Defines the value used to linearly interpolate between the source color and feature color when the `Cesium3DTileset#colorBlendMode` is `MIX`. A value of 0.0 results in the source color while a value of 1.0 results in the feature color, with any value in-between resulting in a mix of the source color and feature color.

Default Value: `0.5`

#### colorBlendMode : Cesium3DTileColorBlendMode
Scene/MapGISM3DSet.js 432

Defines how per-feature colors set from the Cesium API or declarative styling blend with the source colors from the original feature, e.g. glTF material or per-point color in the tile.

Default Value: `Cesium3DTileColorBlendMode.HIGHLIGHT`

#### cullRequestsWhileMoving : Boolean
Scene/MapGISM3DSet.js 259

Optimization option. Don't request tiles that will likely be unused when they come back because of the camera's movement.

Default Value: `true`

#### cullRequestsWhileMovingMultiplier : Number
Scene/MapGISM3DSet.js 267

Optimization option. Multiplier used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.

Default Value: `60.0`

#### debugColorizeTiles : Boolean
Scene/MapGISM3DSet.js 778

This property is for debugging only; it is not optimized for production use.

When true, assigns a random color to each tile. This is useful for visualizing what features belong to what tiles, especially with additive refinement where features from parent tiles may be interleaved with features from child tiles.

Default Value: `false`

#### debugFreezeFrame : Boolean
Scene/MapGISM3DSet.js 765

This property is for debugging only; it is not optimized for production use.

Determines if only the tiles from last frame should be used for rendering. This effectively "freezes" the tileset to the previous frame so it is possible to zoom out and see what was rendered.

Default Value: `false`

#### debugShowBoundingVolume : Boolean
Scene/MapGISM3DSet.js 802

This property is for debugging only; it is not optimized for production use.

When true, renders the bounding volume for each visible tile. The bounding volume is white if the tile has a content bounding volume; otherwise, it is red. Tiles that don't meet the screen space error and are still refining to their descendants are yellow.

Default Value: `false`

#### debugShowContentBoundingVolume : Boolean
Scene/MapGISM3DSet.js 814

This property is for debugging only; it is not optimized for production use.

When true, renders the bounding volume for each visible tile's content. The bounding volume is blue if the tile has a content bounding volume; otherwise it is red.

Default Value: `false`

#### debugShowGeometricError : Boolean
Scene/MapGISM3DSet.js 841

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the geometric error of each tile.

Default Value: `false`

#### debugShowMemoryUsage : Boolean
Scene/MapGISM3DSet.js 863

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the geometry and texture memory usage of each tile.

Default Value: `false`

#### debugShowRenderingStatistics : Boolean
Scene/MapGISM3DSet.js 852

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the number of commands, points, triangles and features of each tile.

Default Value: `false`

#### debugShowUrl : Boolean
Scene/MapGISM3DSet.js 874

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the url of each tile.

Default Value: `false`

#### debugShowViewerRequestVolume : Boolean
Scene/MapGISM3DSet.js 825

This property is for debugging only; it is not optimized for production use.

When true, renders the viewer request volume for each tile.

Default Value: `false`

#### debugWireframe : Boolean
Scene/MapGISM3DSet.js 789

This property is for debugging only; it is not optimized for production use.

When true, renders each tile's content as a wireframe.

Default Value: `false`

#### dynamicScreenSpaceError : Boolean
Scene/MapGISM3DSet.js 327

Optimization option. Whether the tileset should refine based on a dynamic screen space error. Tiles that are further away will be rendered with lower detail than closer tiles. This improves performance by rendering fewer tiles and making less requests, but may result in a slight drop in visual quality for tiles in the distance. The algorithm is biased towards "street views" where the camera is close to the ground plane of the tileset and looking at the horizon. In addition results are more accurate for tightly fitting bounding volumes like box and region.

Default Value: `false`

#### dynamicScreenSpaceErrorDensity : Number
Scene/MapGISM3DSet.js 377

A scalar that determines the density used to adjust the dynamic screen space error, similar to `Fog`. Increasing this value has the effect of increasing the maximum screen space error for all tiles, but in a non-linear fashion. The error starts at 0.0 and increases exponentially until a midpoint is reached, and then approaches 1.0 asymptotically. This has the effect of keeping high detail in the closer tiles and lower detail in the further tiles, with all tiles beyond a certain distance all roughly having an error of 1.0.

The dynamic error is in the range [0.0, 1.0) and is multiplied by `dynamicScreenSpaceErrorFactor` to produce the final dynamic error. This dynamic error is then subtracted from the tile's actual screen space error.

Increasing `dynamicScreenSpaceErrorDensity` has the effect of moving the error midpoint closer to the camera. It is analogous to moving fog closer to the camera.

Default Value: `0.00278`

#### dynamicScreenSpaceErrorFactor : Number
Scene/MapGISM3DSet.js 386

A factor used to increase the screen space error of tiles for dynamic screen space error. As this value increases less tiles are requested for rendering and tiles in the distance will have lower detail. If set to zero, the feature will be disabled.

Default Value: `4.0`

#### dynamicScreenSpaceErrorHeightFalloff : Number
Scene/MapGISM3DSet.js 399

A ratio of the tileset's height at which the density starts to falloff. If the camera is below this height the full computed density is applied, otherwise the density falls off. This has the effect of higher density at street level views.

Valid values are between 0.0 and 1.0.

Default Value: `0.25`

#### readonlyellipsoid : Ellipsoid
Scene/MapGISM3DSet.js 1599

Gets an ellipsoid describing the shape of the globe.

#### extLayer
Scene/MapGISM3DSet.js 1747

附加属性图层 //主要用于记录图层的单体化的 附加矢量图层。

#### readonlyextras : *
Scene/MapGISM3DSet.js 1665

Returns the `extras` property at the top-level of the tileset JSON, which contains application specific metadata. Returns `undefined` if `extras` does not exist.

##### See:

- Extras in the 3D Tiles specification.

#### foveatedConeSize : Number
Scene/MapGISM3DSet.js 1615

Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the cone size that determines which tiles are deferred. Tiles that are inside this cone are loaded immediately. Tiles outside the cone are potentially deferred based on how far outside the cone they are and `Cesium3DTileset#foveatedInterpolationCallback` and `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation`. Setting this to 0.0 means the cone will be the line formed by the camera position and its view direction. Setting this to 1.0 means the cone encompasses the entire field of view of the camera, essentially disabling the effect.

Default Value: `0.3`

#### foveatedInterpolationCallback : Cesium3DTileset~foveatedInterpolationCallback
Scene/MapGISM3DSet.js 346

Gets a function that will update the foveated screen space error for a tile.

#### foveatedMinimumScreenSpaceErrorRelaxation : Number
Scene/MapGISM3DSet.js 1638

Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the starting screen space error relaxation for tiles outside the foveated cone. The screen space error will be raised starting with this value up to `Cesium3DTileset#maximumScreenSpaceError` based on the provided `Cesium3DTileset#foveatedInterpolationCallback`.

Default Value: `0.0`

#### foveatedScreenSpaceError : Boolean
Scene/MapGISM3DSet.js 337

Optimization option. Prioritize loading tiles in the center of the screen by temporarily raising the screen space error for tiles around the edge of the screen. Screen space error returns to normal once all the tiles in the center of the screen as determined by the `Cesium3DTileset#foveatedConeSize` are loaded.

Default Value: `true`

#### foveatedTimeDelay : Number
Scene/MapGISM3DSet.js 357

Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control how long in seconds to wait after the camera stops moving before deferred tiles start loading in. This time delay prevents requesting tiles around the edges of the screen when the camera is moving. Setting this to 0.0 will immediately request all tiles in any given view.

Default Value: `0.2`

#### gdbpUrl
Scene/MapGISM3DSet.js 1713

数据附带的 gdbp地址

#### readonlyguid
Scene/MapGISM3DSet.js 1738

图层的guid

#### immediatelyLoadDesiredLevelOfDetail : Boolean
Scene/MapGISM3DSet.js 684

When true, only tiles that meet the maximum screen space error will ever be downloaded. Skipping factors are ignored and just the desired tiles are loaded.

Only used when `MapGISM3DSet#skipLevelOfDetail` is `true`.

Default Value: `false`

#### initialTilesLoaded : Event
Scene/MapGISM3DSet.js 515

The event fired to indicate that all tiles that meet the screen space error this frame are loaded. This event is fired once when all tiles in the initial view are loaded.

This event is fired at the end of the frame after the scene is rendered.

Default Value: `new Event()`

##### Example:

    tileset.initialTilesLoaded.addEventListener(function() {
        console.log('Initial tiles are loaded');
    });

##### See:

- MapGISM3DSet#allTilesLoaded

#### layerIndex
Scene/MapGISM3DSet.js 1692

图层的 图层索引 可以用来区分组图层 一个组的图层 layerIndex是相同的 但是layerRenderIndex是不同的

#### layerRenderIndex
Scene/MapGISM3DSet.js 1704

图层的渲染索引：发布的图层的唯一索引。 图层自身的索引

#### lightColor : Cartesian3
Scene/MapGISM3DSet.js 714

The color and intensity of the sunlight used to shade a model.

For example, disabling additional light sources by setting `model.imageBasedLightingFactor = new Cartesian2(0.0, 0.0)` will make the model much darker. Here, increasing the intensity of the light source will make the model brighter.

Default Value: `undefined`

#### loadProgress : Event
Scene/MapGISM3DSet.js 477

The event fired to indicate progress of loading new tiles. This event is fired when a new tile is requested, when a requested tile is finished downloading, and when a downloaded tile has been processed and is ready to render.

The number of pending tile requests, `numberOfPendingRequests`, and number of tiles processing, `numberOfTilesProcessing` are passed to the event listener.

This event is fired at the end of the frame after the scene is rendered.

Default Value: `new Event()`

##### Example:

    tileset.loadProgress.addEventListener(function(numberOfPendingRequests, numberOfTilesProcessing) {
        if ((numberOfPendingRequests === 0) && (numberOfTilesProcessing === 0)) {
            console.log('Stopped loading');
            return;
        }

        console.log('Loading: requests: ' + numberOfPendingRequests + ', processing: ' + numberOfTilesProcessing);
    });

#### loadSiblings : Boolean
Scene/MapGISM3DSet.js 696

Determines whether siblings of visible tiles are always downloaded during traversal. This may be useful for ensuring that tiles are already available when the viewer turns left/right.

Only used when `MapGISM3DSet#skipLevelOfDetail` is `true`.

Default Value: `false`

#### luminanceAtZenith : Number
Scene/MapGISM3DSet.js 725

The sun's luminance at the zenith in kilo candela per meter squared to use for this model's procedural environment map. This is used when `Cesium3DTileset#specularEnvironmentMaps` and `Cesium3DTileset#sphericalHarmonicCoefficients` are not defined.

Default Value: `0.5`

#### maximumMemoryUsage : Number
Scene/MapGISM3DSet.js 1394

The maximum amount of GPU memory (in MB) that may be used to cache tiles. This value is estimated from geometry, textures, and batch table textures of loaded tiles. For point clouds, this value also includes per-point metadata.

Tiles not in view are unloaded to enforce this.

If decreasing this value results in unloading tiles, the tiles are unloaded the next frame.

If tiles sized more than `maximumMemoryUsage` are needed to meet the desired screen space error, determined by `MapGISM3DSet#maximumScreenSpaceError`, for the current view, then the memory usage of the tiles loaded will exceed `maximumMemoryUsage`. For example, if the maximum is 256 MB, but 300 MB of tiles are needed to meet the screen space error, then 300 MB of tiles may be loaded. When these tiles go out of view, they will be unloaded.

Default Value: `512`

##### See:

- MapGISM3DSet#totalMemoryUsageInBytes

#### maximumScreenSpaceError : Number
Scene/MapGISM3DSet.js 1354

The maximum screen space error used to drive level of detail refinement. This value helps determine when a tile refines to its descendants, and therefore plays a major role in balancing performance with visual quality.

A tile's screen space error is roughly equivalent to the number of pixels wide that would be drawn if a sphere with a radius equal to the tile's geometric error were rendered at the tile's position. If this value exceeds `maximumScreenSpaceError` the tile refines to its descendants.

Depending on the tileset, `maximumScreenSpaceError` may need to be tweaked to achieve the right balance. Higher values provide better performance but lower visual quality.

Default Value: `16`

#### modelMatrix : Matrix4
Scene/MapGISM3DSet.js 1480

A 4x4 transformation matrix that transforms the entire tileset.

Default Value: `Matrix4.IDENTITY`

##### Example:

    // Adjust a tileset's height from the globe's surface.
    var heightOffset = 20.0;
    var boundingSphere = tileset.boundingSphere;
    var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
    var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
    var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
    var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
    tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);

#### name
Scene/MapGISM3DSet.js 1725

图层名称

#### pointCloudShading : PointCloudShading
Scene/MapGISM3DSet.js 448

Options for controlling point size based on geometric error and eye dome lighting.

#### preferLeaves : Boolean
Scene/MapGISM3DSet.js 283

Optimization option. Prefer loading of leaves first.

Default Value: `false`

#### preloadFlightDestinations : Boolean
Scene/MapGISM3DSet.js 314

Optimization option. Fetch tiles at the camera's flight destination while the camera is in flight.

Default Value: `true`

#### preloadWhenHidden : Boolean
Scene/MapGISM3DSet.js 306

Preload tiles when `tileset.show` is `false`. Loads tiles as if the tileset is visible but does not render them.

Default Value: `false`

#### progressiveResolutionHeightFraction : Number
Scene/MapGISM3DSet.js 275

Optimization option. If between (0.0, 0.5], tiles at or above the screen space error for the reduced screen resolution of `progressiveResolutionHeightFraction*screenHeight` will be prioritized first. This can help get a quick layer of tiles down while full resolution tiles continue to load.

Default Value: `0.3`

#### readonlyproperties : Object
Scene/MapGISM3DSet.js 1178

Gets the tileset's properties dictionary object, which contains metadata about per-feature properties.

See the properties schema in the 3D Tiles spec for the full set of properties.

##### Example:

    console.log('Maximum building height: ' + tileset.properties.height.maximum);
    console.log('Minimum building height: ' + tileset.properties.height.minimum);

##### See:

- Cesium3DTileFeature#getProperty
- Cesium3DTileFeature#setProperty

#### readonlyready : Boolean
Scene/MapGISM3DSet.js 1201

When `true`, the tileset's root tile is loaded and the tileset is ready to render. This is set to `true` right before `MapGISM3DSet#readyPromise` is resolved.

Default Value: `false`

#### readonlyreadyPromise : Promise.<MapGISM3DSet>
Scene/MapGISM3DSet.js 1229

Gets the promise that will be resolved when the tileset's root tile is loaded and the tileset is ready to render.

This promise is resolved at the end of the frame before the first frame the tileset is rendered in.

##### Example:

    tileset.readyPromise.then(function(tileset) {
        // tile.properties is not defined until readyPromise resolves.
        var properties = tileset.properties;
        if (Cesium.defined(properties)) {
            for (var name in properties) {
                console.log(properties[name]);
            }
        }
    });

#### readonlyroot : Cesium3DTile
Scene/MapGISM3DSet.js 1417

The root tile.

#### shadows : ShadowMode
Scene/MapGISM3DSet.js 415

Determines whether the tileset casts or receives shadows from each light source.

Enabling shadows has a performance impact. A tileset that casts shadows must be rendered twice, once from the camera and again from the light's point of view.

Shadows are rendered only when `Viewer#shadows` is `true`.

Default Value: `ShadowMode.ENABLED`

#### show : Boolean
Scene/MapGISM3DSet.js 423

Determines if the tileset will be shown.

Default Value: `true`

#### skipLevelOfDetail : Boolean
Scene/MapGISM3DSet.js 634

Optimization option. Determines if level of detail skipping should be applied during the traversal.

The common strategy for replacement-refinement traversal is to store all levels of the tree in memory and require all children to be loaded before the parent can refine. With this optimization levels of the tree can be skipped entirely and children can be rendered alongside their parents. The tileset requires significantly less memory when using this optimization.

Default Value: `true`

#### skipLevels : Number
Scene/MapGISM3DSet.js 672

Constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped. For example, if a tile is level 1, no tiles will be loaded unless they are at level greater than 2.

Only used when `MapGISM3DSet#skipLevelOfDetail` is `true`.

Default Value: `1`

#### skipScreenSpaceErrorFactor : Number
Scene/MapGISM3DSet.js 660

Multiplier defining the minimum screen space error to skip. For example, if a tile has screen space error of 100, no tiles will be loaded unless they are leaves or have a screen space error `<= 100 / skipScreenSpaceErrorFactor`.

Only used when `MapGISM3DSet#skipLevelOfDetail` is `true`.

Default Value: `16`

#### specularEnvironmentMaps : String
Scene/MapGISM3DSet.js 752

A URL to a KTX file that contains a cube map of the specular lighting and the convoluted specular mipmaps.

##### Demo:

- Sandcastle Image Based Lighting Demo

##### See:

- Cesium3DTileset#sphericalHarmonicCoefficients

#### sphericalHarmonicCoefficients : Array.<Cartesian3>
Scene/MapGISM3DSet.js 743

The third order spherical harmonic coefficients used for the diffuse color of image-based lighting. When `undefined`, a diffuse irradiance computed from the atmosphere color is used.

There are nine `Cartesian3` coefficients. The order of the coefficients is: L00, L1-1, L10, L11, L2-2, L2-1, L20, L21, L22

These values can be obtained by preprocessing the environment map using the `cmgen` tool of Google's Filament project. This will also generate a KTX file that can be supplied to `Cesium3DTileset#specularEnvironmentMaps`.

##### Demo:

- Sandcastle Image Based Lighting Demo

##### See:

- An Efficient Representation for Irradiance Environment Maps

#### style : Cesium3DTileStyle
Scene/MapGISM3DSet.js 1325

The style, defined using the 3D Tiles Styling language, applied to each feature in the tileset.

Assign `undefined` to remove the style, which will restore the visual appearance of the tileset to its default when no style was applied.

The style is applied to a tile before the `MapGISM3DSet#tileVisible` event is raised, so code in `tileVisible` can manually set a feature's properties (e.g. color and show) after the style is applied. When a new style is assigned any manually set properties are overwritten.

Default Value: `undefined`

##### Example:

    tileset.style = new Cesium.Cesium3DTileStyle({
       color : {
           conditions : [
               ['${Height} >= 100', 'color("purple", 0.5)'],
               ['${Height} >= 50', 'color("red")'],
               ['true', 'color("blue")']
           ]
       },
       show : '${Height} > 0',
       meta : {
           description : '"Building id ${id} has height ${Height}."'
       }
    });

##### See:

- 3D Tiles Styling language

#### tileFailed : Event
Scene/MapGISM3DSet.js 583

The event fired to indicate that a tile's content failed to load.

If there are no event listeners, error messages will be logged to the console.

The error object passed to the listener contains two properties:

- `url`: the url of the failed tile.
- `message`: the error message.

Default Value: `new Event()`

##### Example:

    tileset.tileFailed.addEventListener(function(error) {
        console.log('An error occurred loading tile: ' + error.url);
        console.log('Error: ' + error.message);
    });

#### tileLoad : Event
Scene/MapGISM3DSet.js 536

The event fired to indicate that a tile's content was loaded.

The loaded `Cesium3DTile` is passed to the event listener.

This event is fired during the tileset traversal while the frame is being rendered so that updates to the tile take effect in the same frame. Do not create or modify Cesium entities or primitives during the event listener.

Default Value: `new Event()`

##### Example:

    tileset.tileLoad.addEventListener(function(tile) {
        console.log('A tile was loaded.');
    });

#### readonlytilesLoaded : Boolean
Scene/MapGISM3DSet.js 1248

When `true`, all tiles that meet the screen space error this frame are loaded. The tileset is completely loaded for this view.

Default Value: `false`

##### See:

- MapGISM3DSet#allTilesLoaded

#### tileUnload : Event
Scene/MapGISM3DSet.js 560

The event fired to indicate that a tile's content was unloaded.

The unloaded `Cesium3DTile` is passed to the event listener.

This event is fired immediately before the tile's content is unloaded while the frame is being rendered so that the event listener has access to the tile's content. Do not create or modify Cesium entities or primitives during the event listener.

Default Value: `new Event()`

##### Example:

    tileset.tileUnload.addEventListener(function(tile) {
        console.log('A tile was unloaded from the cache.');
    });

##### See:

- MapGISM3DSet#maximumMemoryUsage
- MapGISM3DSet#trimLoadedTiles

#### tileVisible : Event
Scene/MapGISM3DSet.js 620

This event fires once for each visible tile in a frame. This can be used to manually style a tileset.

The visible `Cesium3DTile` is passed to the event listener.

This event is fired during the tileset traversal while the frame is being rendered so that updates to the tile take effect in the same frame. Do not create or modify Cesium entities or primitives during the event listener.

Default Value: `new Event()`

##### Examples:

    tileset.tileVisible.addEventListener(function(tile) {
        if (tile.content instanceof Cesium.Batched3DModel3DTileContent) {
            console.log('A Batched 3D Model tile is visible.');
        }
    });

    // Apply a red style and then manually set random colors for every other feature when the tile becomes visible.
    tileset.style = new Cesium.Cesium3DTileStyle({
        color : 'color("red")'
    });
    tileset.tileVisible.addEventListener(function(tile) {
        var content = tile.content;
        var featuresLength = content.featuresLength;
        for (var i = 0; i < featuresLength; i+=2) {
            content.getFeature(i).color = Cesium.Color.fromRandom();
        }
    });

#### readonlytimeSinceLoad : Number
Scene/MapGISM3DSet.js 1497

Returns the time, in milliseconds, since the tileset was loaded and first updated.

#### readonlytotalMemoryUsageInBytes : Number
Scene/MapGISM3DSet.js 1515

The total amount of GPU memory in bytes used by the tileset. This value is estimated from geometry, texture, and batch table textures of loaded tiles. For point clouds, this value also includes per-point metadata.

##### See:

- MapGISM3DSet#maximumMemoryUsage

#### readonlyurl : String
Scene/MapGISM3DSet.js 1262

The url to a tileset.json file or to a directory containing a tileset.json file.

### Methods

#### staticCesium.MapGISM3DSet.loadJson(tilesetUrl) → Promise.<Object>
Scene/MapGISM3DSet.js 1839

Provides a hook to override the method used to request the tileset json useful when fetching tilesets from remote servers

Name | Type | Description
--- | --- | ---
`tilesetUrl` | Resource | String | The url of the json file to be fetched

##### Returns:

A promise that resolves with the fetched json data

#### destroy()
Scene/MapGISM3DSet.js 2890

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.

##### Example:

    tileset = tileset && tileset.destroy();

##### See:

- Cesium3DTileset#isDestroyed

#### hasExtension(extensionName) → Boolean
Scene/MapGISM3DSet.js 2853

`true` if the tileset JSON file lists the extension in extensionsUsed; otherwise, `false`.

Name | Type | Description
--- | --- | ---
`extensionName` | String | The name of the extension to check.

##### Returns:

`true` if the tileset JSON file lists the extension in extensionsUsed; otherwise, `false`.

#### isDestroyed() → Boolean
Scene/MapGISM3DSet.js 2793

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:

- MapGISM3DSet#destroy

#### isDestroyed() → Boolean
Scene/MapGISM3DSet.js 2871

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:

- Cesium3DTileset#destroy

#### makeStyleDirty()
Scene/MapGISM3DSet.js 1848

Marks the tileset's `MapGISM3DSet#style` as dirty, which forces all features to re-evaluate the style in the next frame each is visible.

#### queryAttributes(key) → Promise.<Object>
Scene/MapGISM3DSet.js 1858

query attribute by oid when exist fieldInfo

Name | Type | Description
--- | --- | ---
`key` | Number | value of oid

##### Returns:

A promise that resolves with the queried data

#### setRotation()
Scene/MapGISM3DSet.js 2771

#### trimLoadedTiles()
Scene/MapGISM3DSet.js 2620

Unloads all tiles that weren't selected the previous frame. This can be used to explicitly manage the tile cache and reduce the total number of tiles loaded below `MapGISM3DSet#maximumMemoryUsage`.

Tile unloads occur at the next frame to keep all the WebGL delete calls within the render loop.