cesium
2024-03-13 11:35:59 1 举报
AI智能生成
Cesium是一种开源的JavaScript库,主要用于在Web浏览器中创建高性能的3D球体和2D地图。它允许用户轻松地处理海量的地理空间数据,并且支持许多地理空间文件格式。Cesium还能与其他开源库如Leaflet和OpenLayers等集成,从而构建出丰富、交互式的地理空间应用。
作者其他创作
大纲/内容
viewer(三维场景的容器,管理地球表面,相机视角,实体(entities)等元素
cesiumWidget
clock(时间表)
container
screenSpaceEventHandler(事件集合器)
scene
globe(地球)
surface(QuadtreePrimitive)
terrain provider
imageryLayers
影像
depthTestAgainstTerrain
true: surface
false:top
imageryProvider
ArcGisMapServerImageryProvider
用于连接Esri的ArcGIS Map Server服务,支持多种地图服务,如矢量地图、卫星地图、地形地图等。
BingMapsImageryProvider
用于连接Bing Maps服务
GoogleEarthImageProvider
用于连接Google Earth服务
SingleTileImageryProvider
用于加载单张静态图像作为图层,常用于加载静态图形或地形数据
TileCoordinatesImageryProvider
用于加载预定义范围内的切片地图数据,可用于自定义地图数据源
TileMapServiceImageProvider
用于连接标准的WMTS(Web Map Tile Service) 服务,支持多种地图服务,如 OpenStreetMap、Mapbox等
UrlTemplateImageryProvider
用于加载可变地址的切片地图数据,常用于自定义地图数据源
环境对象
skybox
skyAtmosphere
sun
sunBloom
moon
backgroundColor
primitives (各种图元(栅格?))
GeometryInstance
Geometry
modelMatrix/attributes(矩阵)
appearance
Material(材质)
vertexShaderSource/fragmentShaderSource/renderState
flat/faceForward/translucent/closed/materialSupport
polyline
polylineCollection
简单
polylineGeometry
灵活
图元
model
points
labels
billboards
classificationPrimitive
本身不可见
3Dtiles
3D,模型属性和方法
camera
setView(option) 在特定位置和方向立即设置相机
zoomIn(amount) 沿着视角矢量移动相机
zoomOut(amount) 沿视角矢量向后移动摄像机
flyTo(options) 创建从当前相机位置到新为止的动画相机飞行
lookAt(target, offset) 定位并定位摄像机以给定偏移量瞄准目标点
move(direction, amount) 朝任何方向移动摄像机
rotate(axis, angle) 绕任意轴旋转相机
canvas
groundPrimitives
情景
随相机距离目标距离大小变换
scaleByDistance, sizeInMeters
不随相机距离目标距离大小变换
子主题
透明度
translucencyByDistance
计算相对位置
Cesium.Transforms.estNorthUpToFixedFrame
dataSourceDisplay
defaultDataSource(CustomDataSource)
entities(矢量?,description)
entityCollection
.position.setInterpolationOptions
dataSources
camera(相机由位置,方向和视锥台定义)
setView
flyTo
lookAt
锁定目标,不可移动,绕目标点旋转
viewBoundingSphere
详细观察一个物体
坐标
Cartesian3 三维笛卡尔
Cartographic 经纬度(弧度)和高度
HeadingPichRoll 航向、俯仰、滚动
Quaternion 以4D坐标表示3D旋转
distanceDisplayCondition0(range)设置在 range 范围内可视
VelocityOrientationProperty 根据实体向前和向后采样的位置,自动计算朝向
空间数据
entity 数据驱动,可视化 高级API
viewer.entities = entityCollection 管理entities
primitive 面向图形开发人员,低级API
球
图层
imageryLayer
imageryProvider
地形
terrain
terrainProvider
定位类型
cartesian3
笛卡尔坐标
cartographic
经纬度和WGS84椭球面高度确定的位置
headingpitchroll
X,Y,Z轴旋转
quaternion
以4D坐标表示3D旋转
相机
相机控制
Camera
setView(options)
在特定位置和方向立即设置相机
zoomIn(amount)
沿着视角矢量移动摄像机
zoomOut(amount)
沿视角矢量向后移动摄像机
flyTo(options)
当前飞到指定位置
lookAt(target, offset)
定位并定位摄像机以给定偏移量瞄准目标点
move(direction, amount)
朝任何方向移动摄像机
rotate(axis, angle)
绕任意轴旋转相机
位置和朝向配置
var initialPosition = new Cesium.Cartesian3.fromDegrees(-73.998114468289017509, 40.674512895646692812, 2631.082799425431);
var initialOrientation = new Cesium.HeadingPitchRoll.fromDegrees(7.1077496389876024807, -31.987223091598949054, 0.025883251314954971306);
var homeCameraView = {
destination : initialPosition,
orientation : {
heading : initialOrientation.heading,
pitch : initialOrientation.pitch,
roll : initialOrientation.roll
}
};
// Set the initial view
viewer.scene.camera.setView(homeCameraView);
var initialPosition = new Cesium.Cartesian3.fromDegrees(-73.998114468289017509, 40.674512895646692812, 2631.082799425431);
var initialOrientation = new Cesium.HeadingPitchRoll.fromDegrees(7.1077496389876024807, -31.987223091598949054, 0.025883251314954971306);
var homeCameraView = {
destination : initialPosition,
orientation : {
heading : initialOrientation.heading,
pitch : initialOrientation.pitch,
roll : initialOrientation.roll
}
};
// Set the initial view
viewer.scene.camera.setView(homeCameraView);
其他配置
时钟
时间类型JulandDATE
viewer.clock.shouldAnimate = true; // make the animation play when the viewer starts
viewer.clock.startTime = Cesium.JulianDate.fromIso8601("2017-07-11T16:00:00Z");
viewer.clock.stopTime = Cesium.JulianDate.fromIso8601("2017-07-11T16:20:00Z");
viewer.clock.currentTime = Cesium.JulianDate.fromIso8601("2017-07-11T16:00:00Z");
viewer.clock.multiplier = 2; // sets a speedup
viewer.clock.clockStep = Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER; // tick computation mode
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP; // loop at the end
viewer.timeline.zoomTo(viewer.clock.startTime, viewer.clock.stopTime); // set visible range
viewer.clock.startTime = Cesium.JulianDate.fromIso8601("2017-07-11T16:00:00Z");
viewer.clock.stopTime = Cesium.JulianDate.fromIso8601("2017-07-11T16:20:00Z");
viewer.clock.currentTime = Cesium.JulianDate.fromIso8601("2017-07-11T16:00:00Z");
viewer.clock.multiplier = 2; // sets a speedup
viewer.clock.clockStep = Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER; // tick computation mode
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP; // loop at the end
viewer.timeline.zoomTo(viewer.clock.startTime, viewer.clock.stopTime); // set visible range
地理空间对象
datasources
Czmldatasource
CZML数据源适用于需要在时间轴上展示实时或历史数据的场景,例如飞行轨迹、天文事件等
customdatasource
gpxdatasource
geojsondatasource
GeoJSON数据源适用于常规的地理信息展示,如点、线、面等地理空间要素
kmldatasource
KML(Keyhole Markup Language)是一种用于地理空间数据描述的XML格式。
KmlDataSource用于加载和显示基于KML格式的地理空间数据。
KML数据源适用于与Google Earth等应用中共享的地理信息,支持点、线、面等地理空间要素
KmlDataSource用于加载和显示基于KML格式的地理空间数据。
KML数据源适用于与Google Earth等应用中共享的地理信息,支持点、线、面等地理空间要素
实体 Entities
Entity 是Cesium中的高级对象,用于表示地理空间中的实体,如点、线、面等。
Entity 具有属性(如位置、颜色、标签等),可以在时间上进行动态变化。
Entity 对象更容易使用和管理,它提供了更高级别的抽象,允许你更直观地描述和控制地理空间实体的外观和行为。
Entity 适用于需要在时间轴上展示实时或历史数据的场景,例如飞行轨迹、动态传感器数据等。
Entity 具有属性(如位置、颜色、标签等),可以在时间上进行动态变化。
Entity 对象更容易使用和管理,它提供了更高级别的抽象,允许你更直观地描述和控制地理空间实体的外观和行为。
Entity 适用于需要在时间轴上展示实时或历史数据的场景,例如飞行轨迹、动态传感器数据等。
矢量数据格式
geoJson
KML
CZML
类型
polygon
polyline
billboard
label
infoBox 描述
description 属性
primivite
Primitive 是Cesium中的低级对象,用于表示更基本的图形元素,如点、线、面等。
Primitive 提供了对WebGL渲染管线的直接访问,使得它更接近底层的图形渲染。
Primitive 可以用于更高度定制和优化的图形渲染,但它相对于 Entity 更复杂,需要手动设置和管理渲染细节。
Primitive 适用于需要直接控制图形渲染的场景,例如性能要求较高、需要自定义着色器的情况。
Primitive 提供了对WebGL渲染管线的直接访问,使得它更接近底层的图形渲染。
Primitive 可以用于更高度定制和优化的图形渲染,但它相对于 Entity 更复杂,需要手动设置和管理渲染细节。
Primitive 适用于需要直接控制图形渲染的场景,例如性能要求较高、需要自定义着色器的情况。
0 条评论
下一页