I3SDataProvider 是 I3S 支持的主要公共类。url 选项
应返回一个场景对象。当前支持的 I3S 版本为 1.6 和
1.7/1.8(OGC I3S 1.2)。I3SFeature 和 I3SNode 类实现了
I3S 实体的对象模型,并提供公共接口。
此对象通常不直接实例化,请使用
I3SDataProvider.fromUrl。
| Name | Type | Description |
|---|---|---|
options |
I3SDataProvider.ConstructorOptions | 描述初始化选项的对象 |
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
确定是否根据颜色顶点属性调整材质的 alpha 模式。
确定是否解析并应用各图层的 I3S 符号系统。
确定是否在没有法线的 I3S 几何上生成平面法线。
获取此对象的 I3S 数据。
readonly extent : Rectangle
获取此 I3S 所覆盖的范围。
readonly geoidTiledTerrainProvider : ArcGISTiledElevationTerrainProvider
引用 GEOID 服务的地形提供器,用于正高到椭球高的转换。
readonly layers : Array.<I3SLayer>
获取图层集合。
获取此数据集的可读名称。
readonly resource : Resource
用于获取 I3S 数据集的资源。
确定数据集是否显示。
确定要素是否显示。
readonly sublayers : Array.<I3SSublayer>
获取建筑子图层集合。
Methods
static Cesium.I3SDataProvider.fromUrl(url, options) → Promise.<I3SDataProvider>
创建一个 I3SDataProvider。当前支持的 I3S 版本为 1.6 和
1.7/1.8(OGC I3S 1.2)。
| Name | Type | Description |
|---|---|---|
url |
string | Resource | I3S 数据集的 url,应返回一个 I3S 场景对象 |
options |
I3SDataProvider.ConstructorOptions | 描述初始化选项的对象 |
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}`);
}
销毁此对象持有的 WebGL 资源。销毁对象可以实现 WebGL 资源的确定性
释放,而不依赖垃圾回收器来销毁此对象。
一旦对象被销毁,就不应再使用它;调用除
isDestroyed 之外的任何函数都会导致 DeveloperError 异常。因此,
应像示例中那样将返回值(undefined)赋给该对象。
Throws:
-
DeveloperError :此对象已被销毁,即调用了 destroy()。
将场景的绘制元素按特定属性名称和值进行过滤
| Name | Type | Default | Description |
|---|---|---|---|
filters |
Array.<I3SNode.AttributeFilter> |
[]
|
optional 属性过滤器集合 |
Returns:
应用过滤器时解析的 promise
返回所有可用属性的名称集合
Returns:
属性名称集合
返回指定名称属性的取值集合
| Name | Type | Description |
|---|---|---|
name |
string | 属性名称 |
Returns:
属性取值集合
如果此对象已被销毁则返回 true;否则返回 false。
如果此对象已被销毁,则不应使用它;调用除
isDestroyed 之外的任何函数都会导致 DeveloperError 异常。
Returns:
如果此对象已被销毁则为
true;否则为 false。
Type Definitions
I3SDataProvider 构造函数的初始化选项
Properties:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
name |
string |
<optional> |
I3S 数据集的名称。 | |
show |
boolean |
<optional> |
true | 确定数据集是否显示。 |
geoidTiledTerrainProvider |
ArcGISTiledElevationTerrainProvider | Promise.<ArcGISTiledElevationTerrainProvider> |
<optional> |
描述地球重力模型(Earth Gravitational Model)的切片高程提供器。如果已定义,几何将基于该提供器给出的偏移量进行偏移。对于具有重力相关高度(gravity-related height)的 I3S 数据集,需要使用它才能将其定位到正确位置。 | |
cesium3dTilesetOptions |
Cesium3DTileset.ConstructorOptions |
<optional> |
包含要传递给内部创建的 Cesium3DTileset 的选项的对象。有效属性列表参见 Cesium3DTileset。除 url 和 show 外,所有选项均可使用,这两个属性会被 I3SDataProvider 的值覆盖。 |
|
showFeatures |
boolean |
<optional> |
false | 确定要素是否显示。 |
adjustMaterialAlphaMode |
boolean |
<optional> |
false | 根据顶点颜色透明度调整材质 alpha 模式的选项。当 true 时,对于颜色顶点属性中存在任何透明度的几何,材质(若未定义)的 alpha 模式将被设为 BLEND。 |
applySymbology |
boolean |
<optional> |
false | 确定是否解析并应用各图层的 I3S 符号系统。 |
calculateNormals |
boolean |
<optional> |
false | 确定是否在没有法线的 I3S 几何上生成平面法线。 |
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,
};
