中文API网址,结合着看。http://cesium.xin/cesium/cn/Documentation1.62/
1、Cesium.CallbackProperty是 Cesium 中的一个类,用于创建一个根据回调函数动态计算属性值的属性对象。
var entity = viewer.entities.add({
position: new Cesium.CallbackProperty(function(time, result) {
var longitude = computeLongitude(time); // 根据时间计算经度
var latitude = computeLatitude(longitude); // 根据经度计算纬度
var height = computeHeight(latitude); // 根据纬度计算高度
return Cesium.Cartesian3.fromDegrees(longitude, latitude, height, Cesium.Ellipsoid.WGS84, result);
}, false)
});
1、CorridorGeometry(走廊几何对象)是Cesium中用于表示走廊(corridor)几何形状的类。走廊是一个具有固定宽度的带状区域,可以用来表示道路、管道、河流等特定的空间区域。
使用Cesium.CorridorGeometry,您可以定义走廊的位置、形状和其他属性,以在Cesium中进行可视化呈现。
// 定义走廊的位置和形状
var corridor = new Cesium.CorridorGeometry({
positions: Cesium.Cartesian3.fromDegreesArray([
-70.0, 40.0,
-75.0, 42.0,
-80.0, 40.0
]),
width: 1000, // 走廊的宽度
height: 0, // 走廊的高度,通常为0
extrudedHeight: 0, // 走廊的拉伸高度,通常为0表示不拉伸
cornerType: Cesium.CornerType.ROUNDED, // 走廊的角点类型
vertexFormat: Cesium.VertexFormat.POSITION_ONLY // 顶点格式
});
// 创建走廊实例
var geometryInstance = new Cesium.GeometryInstance({
geometry: corridor,
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED) // 走廊的颜色
}
});
// 创建可视化实体
var primitive = new Cesium.Primitive({
geometryInstances: geometryInstance,
appearance: new Cesium.PerInstanceColorAppearance()
});
// 将走廊添加到场景
viewer.scene.primitives.add(primitive);
2、Cesium.CorridorGeometryUpdater(走廊几何更新器)是Cesium中用于管理和更新走廊几何图形的类。它是Cesium中的一个实用工具,可用于在动态场景中对走廊进行实时更新和交互。
通过Cesium.CorridorGeometryUpdater,您可以根据需要更新走廊几何对象的位置、宽度、高度、角点类型等属性,并使其响应用户交互或其他外部因素的变化。
// 创建初始的走廊几何对象
var initialCorridor = new Cesium.CorridorGeometry({
positions: Cesium.Cartesian3.fromDegreesArray([-75.0, 40.0, -80.0, 42.0]),
width: 500,
cornerType: Cesium.CornerType.MITERED
});
// 创建走廊几何更新器
var corridorUpdater = new Cesium.CorridorGeometryUpdater(initialCorridor);
// 在需要更新走廊属性时,使用corridorUpdater进行更新
corridorUpdater.setPositions(Cesium.Cartesian3.fromDegreesArray([-70.0, 42.0, -75.0, 44.0]));
corridorUpdater.setWidth(1000);
corridorUpdater.setCornerType(Cesium.CornerType.ROUNDED);
// 获取更新后的几何对象
var updatedCorridor = corridorUpdater.createGeometry();
// 创建可视化实体
var primitive = new Cesium.Primitive({
geometryInstances: new Cesium.GeometryInstance({
geometry: updatedCorridor,
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
}
}),
appearance: new Cesium.PerInstanceColorAppearance()
});
// 将实体添加到场景
viewer.scene.primitives.add(primitive);
3、Cesium.CorridorGraphics(走廊图形)是Cesium中用于在三维场景中创建和配置走廊的图形对象。通过Cesium.CorridorGraphics,您可以定义走廊的位置、形状、样式和其他属性,以在Cesium中进行可视化呈现。
// 创建走廊实体
var corridorEntity = viewer.entities.add({
corridor: {
positions: Cesium.Cartesian3.fromDegreesArrayHeights([
-75.0, 40.0, 0,
-80.0, 42.0, 0
]),
width: 1000,
cornerType: Cesium.CornerType.BEVELED,
material: Cesium.Color.RED.withAlpha(0.5)
}
});
4、Cesium.CorridorOutlineGeometry(走廊轮廓几何对象)是Cesium中用于表示走廊几何形状的轮廓的类。它用于创建走廊的边框线轮廓,可以用于绘制走廊的边界或进行其他辅助渲染。
通过Cesium.CorridorOutlineGeometry,您可以定义走廊的位置、形状和其他属性,以创建轮廓几何对象,并将其用于绘制边框线外观。
// 定义走廊的位置和形状
var corridor = Cesium.Cartesian3.fromDegreesArray([
-75.0, 40.0,
-80.0, 42.0
]);
// 创建走廊轮廓几何对象
var corridorOutlineGeometry = new Cesium.CorridorOutlineGeometry({
positions: corridor,
width: 1000,
cornerType: Cesium.CornerType.BEVELED
});
// 创建渲染用的走廊轮廓实例
var corridorOutlineInstance = new Cesium.GeometryInstance({
geometry: corridorOutlineGeometry,
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
}
});
// 创建可视化实体
var corridorOutlinePrimitive = new Cesium.Primitive({
geometryInstances: corridorOutlineInstance,
appearance: new Cesium.PerInstanceColorAppearance({
flat: true,
renderState: {
lineWidth: Math.min(2.0, viewer.scene.maximumAliasedLineWidth)
}
})
});
// 将走廊轮廓添加到场景
viewer.scene.primitives.add(corridorOutlinePrimitive);
5、Cesium.createCommand 是一个辅助函数,用于创建一个具有执行逻辑的命令对象。该命令对象可以与用户界面组件(如按钮)一起使用,以便执行特定的操作或调用函数。
// 创建一个命令对象
var command = Cesium.createCommand(function() {
// 在这里编写命令的执行逻辑
console.log('Command executed!');
});
// 执行命令
command.execute();
6、Cesium.createGuid 是 Cesium 中用于生成全局唯一标识符(GUID)的函数之一。GUID 是一种由算法生成的标识符,它在范围内几乎是唯一的,可以用于识别对象或标记实体的唯一性。
// 创建一个 GUID
var guid = Cesium.createGuid();
console.log(guid);
7、createOpenStreetMapImageryProvider
是 Cesium 中用于创建 OpenStreetMap 图像提供程序的帮助函数。OpenStreetMap 是一个由全球社区创建和维护的开放式地理数据项目,提供了免费的地图数据。
// 创建 OpenStreetMap 图像提供程序
var imageryProvider = Cesium.createOpenStreetMapImageryProvider({
url : 'https://a.tile.openstreetmap.org/'
});
// 创建地球场景
var viewer = new Cesium.Viewer('cesiumContainer', {
imageryProvider: imageryProvider
});
8、Cesium.TangentSpaceDebugPrimitive
是 Cesium 中用于创建用于调试渲染的切线空间(tangent space)的图元(Primitive)。
切线空间是一种用于在渲染表面细节时正确应用法线贴图的技术。TangentSpaceDebugPrimitive
可以可视化一个表面的切线空间以帮助调试和调整法线贴图的效果。
// 创建切线空间调试图元
var primitive = new Cesium.TangentSpaceDebugPrimitive({
geometryInstance: new Cesium.GeometryInstance({
geometry: new Cesium.PlaneGeometry({
vertexFormat: Cesium.VertexFormat.ALL,
minimum: new Cesium.Cartesian3(-10.0, -10.0, 0),
maximum: new Cesium.Cartesian3(10.0, 10.0, 0)
}),
modelMatrix: Cesium.Matrix4.IDENTITY
})
});
// 将切线空间调试图元添加到场景中
viewer.scene.primitives.add(primitive);
9、createTaskProcessorWorker
是一个用来创建 Web Worker 的帮助函数。它用于将一个 JavaScript 模块包装成一个可以通过 Web Worker 运行的任务处理器。
// 在主线程中创建任务处理器的 Web Worker
var taskProcessorWorker = Cesium.createTaskProcessorWorker(workerFunction);
// 定义在 Web Worker 中运行的函数
function workerFunction(parameters, transferableObjects) {
// 在此处执行任务的逻辑
// ...
// 返回结果
return result;
}
// 发送任务到 Web Worker 进行处理
var task = {
// 任务数据
// ...
};
taskProcessorWorker.postMessage(task);
10、createTileMapServiceImageryProvider
是 Cesium 中用于创建 TileMapService 图像提供程序的帮助函数。
Tile Map Service (TMS) 是一种用于将大量地图图像分割为多个瓦片并进行传输的标准化协议。使用 createTileMapServiceImageryProvider
可以创建一个用于显示 TMS 数据源的图像提供程序。
// 创建 TileMapService 图像提供程序
var imageryProvider = Cesium.createTileMapServiceImageryProvider({
url : 'http://path_to_tiles/{z}/{x}/{y}.png',
fileExtension: 'png',
minimumLevel: 0,
maximumLevel: 10
});
// 创建地球场景
var viewer = new Cesium.Viewer('cesiumContainer', {
imageryProvider: imageryProvider
});
11、createWorldImagery
是 Cesium 中用于创建 World Imagery 图像提供程序的帮助函数。
World Imagery 是一种由 Esri 提供的全球影像地图服务,提供了高分辨率的卫星图像和空中摄影图像。使用 createWorldImagery
函数可以方便地创建一个用于显示 World Imagery 数据的图像提供程序。
// 创建 World Imagery 图像提供程序
var imageryProvider = Cesium.createWorldImagery();
// 创建地球场景
var viewer = new Cesium.Viewer('cesiumContainer', {
imageryProvider: imageryProvider
});
12、createWorldTerrain
是 Cesium 中用于创建 World Terrain(世界地形)提供程序的一个帮助函数。
World Terrain 是一个基于高分辨率地形数据的全球地形服务,由 Cesium 提供。使用 createWorldTerrain
函数可以方便地创建一个用于显示 World Terrain 数据的地形提供程序。
// 创建 World Terrain 提供程序
var terrainProvider = Cesium.createWorldTerrain();
// 创建地球场景
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider: terrainProvider
});
12、Credit
对象用于显示在地图或场景中,以提供数据源、服务提供者或其他相关权益信息的文字。它通常以文本形式出现在底部的角落,以便用户能够了解数据来源和版权信息。
// 创建一个 Credit 对象
var credit = new Cesium.Credit('数据来源:地理数据提供者');
// 将 Credit 对象添加到 Viewer 中
var viewer = new Cesium.Viewer('cesiumContainer', {
credits: credit
});
13、CubicRealPolynomial
是 Cesium 中的一个辅助类,用于处理三次方程的计算。
通过 CubicRealPolynomial
类,您可以执行以下操作:
- 计算三次多项式在给定 x 值处的值。
- 计算三次多项式的根(即方程的解)。
- 计算三次多项式的导数。
var coefficients = new Cesium.Cartesian4(1.0, -2.0, 3.0, 4.0);
var polynomial = new Cesium.CubicRealPolynomial(coefficients);
var x = 2.0;
var value = polynomial.evaluate(x); // 计算多项式在 x=2 处的值
var roots = [];
var numRoots = polynomial.computeRealRoots(roots); // 计算多项式的根,并将结果存储在 roots 数组中
var derivative = polynomial.computeDerivative(); // 计算多项式的导数
14、背面剔除(Cull Face)是一种用于优化渲染性能的技术。它可以设置仅渲染对象的正面或背面,以避免不必要的渲染开销。
在 Cesium 中,可以使用 Cesium.CullFace
枚举来设定背面剔除的行为。它包含以下选项:
Cesium.CullFace.NONE
:不剔除任何面,即正面和背面都会渲染。Cesium.CullFace.FRONT
:剔除对象的背面,只渲染正面。Cesium.CullFace.BACK
:剔除对象的正面,只渲染背面。Cesium.CullFace.FRONT_AND_BACK
:剔除对象的正面和背面,不进行渲染。
var viewer = new Cesium.Viewer('cesiumContainer');
// 设置背面剔除
viewer.scene.globe.backFaceCulling = Cesium.CullFace.BACK;
15、在 Cesium 中有一个名为 CullingVolume
的类,它是用于创建裁剪体(Culling Volume)的辅助类。裁剪体用于确定哪些对象在相机视锥之外,并允许进行相应的性能优化。
使用 CullingVolume
,您可以创建一个定义了裁剪体的辅助几何体(通常是一个长方体或一个地理坐标形状),并使用它来测试其他对象是否在裁剪体之外。
var viewer = new Cesium.Viewer('cesiumContainer');
var camera = viewer.camera;
// 创建一个裁剪体
var cullingVolume = new Cesium.CullingVolume(camera.frustum);
// 将一个位置作为示例对象进行测试
var position = Cesium.Cartographic.fromDegrees(lon, lat, height);
var testPoint = Cesium.Ellipsoid.WGS84.cartographicToCartesian(position);
// 检查测试点是否在裁剪体之外
var isOutside = cullingVolume.computeVisibility(testPoint) === Cesium.Intersect.OUTSIDE;
16、Cesium.CustomDataSource
是 Cesium 中的一个类,用于创建自定义数据源。自定义数据源允许您将自己的数据添加到 Cesium 场景中,并与其他图层和实体进行交互。
通过 Cesium.CustomDataSource
,您可以执行以下操作:
- 创建一个自定义数据源对象。
- 向数据源中添加实体(entities)或属性(properties)。
- 控制实体的可见性、样式和行为。
- 处理实体的交互事件(如点击、悬停等)。
var viewer = new Cesium.Viewer('cesiumContainer');
// 创建自定义数据源
var customDataSource = new Cesium.CustomDataSource('myCustomDataSource');
// 创建一个实体并添加到数据源中
var entity = new Cesium.Entity({
position: Cesium.Cartesian3.fromDegrees(lon, lat),
label: {
text: 'My Entity'
}
});
customDataSource.entities.add(entity);
// 将数据源添加到场景中
viewer.dataSources.add(customDataSource);
17、Cesium.CylinderGeometry
是 Cesium 中用于创建圆柱体几何体的类。圆柱体是由底面圆、顶面圆和侧面连接构成的几何体。
您可以使用 Cesium.CylinderGeometry
创建圆柱体的几何体对象,并将其用于渲染或进行其他操作。
// 使用默认参数创建圆柱体几何体
var cylinderGeometry = new Cesium.CylinderGeometry({
length: 100.0, // 圆柱体的高度
topRadius: 25.0, // 顶面圆的半径
bottomRadius: 50.0, // 底面圆的半径
slices: 16, // 侧面圆柱体的分段数
topCap: true, // 是否创建顶面
bottomCap: true // 是否创建底面
});
// 使用圆柱体几何体创建一个可渲染的实体
var cylinderEntity = new Cesium.Entity({
position: Cesium.Cartesian3.fromDegrees(lon, lat),
cylinder: {
length: 100.0,
topRadius: 25.0,
bottomRadius: 50.0,
material: Cesium.Color.RED
}
});
18、Cesium.CylinderGraphics,您可以设置圆柱体的位置、尺寸、样式、可见性及其他属性。
var viewer = new Cesium.Viewer('cesiumContainer');
// 创建一个实体
var entity = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(lon, lat),
cylinder: {
length: 100.0, // 圆柱体的高度
topRadius: 25.0, // 顶面圆的半径
bottomRadius: 50.0, // 底面圆的半径
material: Cesium.Color.RED.withAlpha(0.5), // 圆柱体的颜色
outline: true, // 是否显示圆柱体的轮廓线
outlineColor: Cesium.Color.BLACK, // 圆柱体轮廓线的颜色
numberOfVerticalLines: 16, // 侧面圆柱体的线段数量
fill: false // 是否填充圆柱体的侧面
}
});
19、Cesium.CylinderOutlineGeometry
是 Cesium 中用于创建圆柱体轮廓几何体的类。
// 使用默认参数创建圆柱体轮廓几何体
var cylinderOutlineGeometry = new Cesium.CylinderOutlineGeometry({
length: 100.0, // 圆柱体的高度
topRadius: 25.0, // 顶面圆的半径
bottomRadius: 50.0, // 底面圆的半径
slices: 16 // 圆柱体的分段数
});
20、Cesium.CzmlDataSource
是 Cesium 中用于加载和解析 CZML(Cesium Language)格式数据的类。CZML 是一种用于描述场景、实体、图形和时间的 JSON 基础的格式,通过使用 Cesium.CzmlDataSource
,您可以将 CZML 数据加载到 Cesium 的场景中进行可视化。
var viewer = new Cesium.Viewer('cesiumContainer');
var czmlData = [{
"id" : "document",
"name" : "CZML Points and Path",
"version" : "1.0"
}, {
"id" : "point",
"name" : "Simple point",
"position" : {
"cartographicDegrees" : [-75.170726, 39.920866, 0]
},
"point" : {
"color" : {
"rgba" : [255, 0, 0, 255]
},
"outlineColor" : {
"rgba" : [0, 255, 0, 255]
},
"outlineWidth" : 2,
"pixelSize" : 10,
"show" : true
}
}, {
"id" : "path",
"name" : "Simple path",
"path" : {
"material" : {
"solidColor" : {
"color" : { "rgba" : [255, 0, 0, 100] }
}
},
"width" : 2,
"show" : true,
"resolution" : 5
},
"position" : {
"cartographicDegrees" : [-75.169583, 39.919229, 0, -75.169518, 39.919635, 0, -75.169518, 39.919635, 0, -75.169518, 39.919635, 0, -75.169518, 39.919635, 0]
}
}];
var czmlDataSource = new Cesium.CzmlDataSource();
czmlDataSource.load(czmlData).then(function(){
viewer.dataSources.add(czmlDataSource);
viewer.zoomTo(czmlDataSource);
});
21、Cesium.DataSource
是 Cesium 中表示数据源的基类。数据源是一种用于加载、解析和管理数据的对象,它可以包含场景中的实体、图形、模型、影像、地形等各种类型的数据。
Cesium.DataSource
类为数据源提供了基本的接口和功能,包括数据加载、事件处理、可见性控制、添加/移除数据等操作。除了 Cesium.CzmlDataSource
,Cesium 还提供了其他类型的数据源,如 Cesium.GeoJsonDataSource
(加载解析 GeoJSON 数据)、Cesium.KmlDataSource
(加载解析 KML 数据)等。
var viewer = new Cesium.Viewer('cesiumContainer');
// 创建一个 CZML 数据源
var czmlDataSource = new Cesium.CzmlDataSource();
czmlDataSource.load('path/to/czml/file.czml').then(function(){
viewer.dataSources.add(czmlDataSource);
});
// 创建一个 GeoJSON 数据源
var geoJsonDataSource = new Cesium.GeoJsonDataSource();
geoJsonDataSource.load('path/to/geojson/file.geojson').then(function(){
viewer.dataSources.add(geoJsonDataSource);
});
// 创建一个 KML 数据源
var kmlDataSource = new Cesium.KmlDataSource();
kmlDataSource.load('path/to/kml/file.kml').then(function(){
viewer.dataSources.add(kmlDataSource);
});
22、new Cesium.DataSourceClock ,代表特定 DataSource 的所需时钟设置。这些设置可能适用加载数据源后,将其添加到 Clock 。
var dataSourceClock = new Cesium.DataSourceClock({
startTime: Cesium.JulianDate.fromIso8601('2021-01-01T00:00:00Z'),
stopTime: Cesium.JulianDate.fromIso8601('2021-01-01T01:00:00Z'),
currentTime: Cesium.JulianDate.fromIso8601('2021-01-01T00:30:00Z'),
clockRange: Cesium.ClockRange.LOOP_STOP,
clockStep: Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER
});
23、Cesium.DataSourceCollection
是 Cesium 中用于管理数据源的集合类。它表示一个存储多个数据源的容器,可以方便地添加、移除和获取数据源。
var dataSources = new Cesium.DataSourceCollection();
var czmlDataSource = new Cesium.CzmlDataSource();
var kmlDataSource = new Cesium.KmlDataSource();
dataSources.add(czmlDataSource);
dataSources.add(kmlDataSource);
dataSources.remove(czmlDataSource);
var count = dataSources.length;
for (var i = 0; i < dataSources.length; i++) {
var dataSource = dataSources.get(i);
// 对数据源进行操作
}
24、Cesium.DataSourceDisplay
是 Cesium 中用于显示和管理数据源的类。它负责将数据源的几何图形和属性渲染到场景中,并处理数据源的可见性、加载状态和剔除等操作。
25、Cesium.DebugCameraPrimitive
是 Cesium 中用于在场景中绘制相机视锥体的类。它可以用于调试和可视化相机的视图范围。
var debugCameraPrimitive = new Cesium.DebugCameraPrimitive({
camera: viewer.camera,
color: Cesium.Color.RED
});
viewer.scene.primitives.add(debugCameraPrimitive);
26、Cesium.DebugModelMatrixPrimitive
是 Cesium 中用于调试和可视化模型矩阵的类。它可以帮助您检查和调试模型的位置、旋转和缩放。
var modelMatrix = Cesium.Matrix4.fromTranslationRotationScale(
Cesium.Cartesian3.ZERO,
Cesium.Quaternion.IDENTITY,
new Cesium.Cartesian3(1.0, 1.0, 1.0)
);
var debugModelMatrixPrimitive = new Cesium.DebugModelMatrixPrimitive({
modelMatrix: modelMatrix,
length: 100.0,
width: 2.0,
show: true
});
viewer.scene.primitives.add(debugModelMatrixPrimitive);
27、esium.DefaultProxy 一个简单的代理,将所需的资源作为唯一的查询参数附加到给定的代理URL。
Cesium.DefaultProxyOptions.proxyUrl = '/myProxy'; // 设置代理服务器的URL
Cesium.DefaultProxyOptions.proxyRecursive = true; // 设置是否递归代理,默认为true
// 使用设置的默认代理选项进行资源加载
Cesium.Resource.defaultProxy = new Cesium.DefaultProxy(Cesium.DefaultProxyOptions);
28、Cesium.DiscardEmptyTileImagePolicy
是 Cesium 中的一个类,用于指定在加载瓦片图像时丢弃空白图像的策略。
var imageryProvider = new Cesium.SingleTileImageryProvider({
url: 'path/to/imagery',
rectangle: Cesium.Rectangle.fromDegrees(-180, -90, 180, 90),
credit: new Cesium.Credit('Credit text'),
imagePolicy: new Cesium.DiscardEmptyTileImagePolicy()
});
viewer.imageryLayers.addImageryProvider(imageryProvider);
29、Cesium.DiscardMissingTileImagePolicy
是 Cesium 中的一个类,用于指定在加载瓦片图像时丢弃丢失图像的策略。
var imageryProvider = new Cesium.SingleTileImageryProvider({
url: 'path/to/imagery',
rectangle: Cesium.Rectangle.fromDegrees(-180, -90, 180, 90),
credit: new Cesium.Credit('Credit text'),
imagePolicy: new Cesium.DiscardMissingTileImagePolicy()
});
viewer.imageryLayers.addImageryProvider(imageryProvider);
30、Cesium.DistanceDisplayCondition
是 Cesium 中的一个类,用于设置对象的距离显示条件。使用 Cesium.DistanceDisplayCondition
可以让您更精确地控制在相机距离对象多远时开始显示对象,并且在相机距离对象多远时停止显示对象。这对于性能优化和场景控制非常有用,可以根据相机位置动态调整对象的显示范围。
var entity = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
billboard: {
image: 'path/to/image.png',
scaleByDistance: new Cesium.DistanceDisplayCondition(1000, 5000)
}
});