随笔分类 - Cesium杂记
摘要:sampleHeight(position, objectsToExclude, width) 返回给定地图位置处场景几何体的高度,如果没有要从中采样高度的场景几何体,则返回未定义的高度。输入位置的高度被忽略。可以用于将对象钳夹到场景中的球体、3D平铺或基本体。此函数仅从当前视图中渲染的球体平铺和三
阅读全文
摘要:加载OSM 以下是官方示例,但增加了丰富的注释 // 创建一个Cesium.Viewer对象,用于在网页中显示3D地球仪和地图 // cesiumContainer是HTML元素的ID,用于容纳地球仪 // terrainProvider是一个选项,用于指定地形数据源,默认为Cesium.creat
阅读全文
摘要:以下为官网示例,但是我加上了详细的注释 // 创建一个Cesium.Viewer对象,用于在网页中显示3D地球仪和地图 // cesiumContainer是HTML元素的ID,用于容纳地球仪 // terrainProvider是一个选项,用于指定地形数据源,默认为Cesium.createWor
阅读全文
摘要:cesium是一个用于创建3D地球和空间场景的JavaScript库,它提供了一些用于坐标变换的类,统称为transform。transform类可以帮助我们在不同的参考系之间转换点或向量,例如从地球固定系到国际天文参考系,或者从WGS84坐标系到窗口坐标系。transform类还可以根据给定的位置
阅读全文
摘要:以下是一段示例代码,目的是使某一物体运动并进行相机跟踪 该代码创建了一个CesiumViewer对象,并在其中添加了一个名为“飞机”的实体对象。该实体具有模型、位置和路径三个属性。通过定义一个包含三个时空点的数组,并使用插值算法计算出物体运动的位置,然后将其赋值给实体的位置属性。同时设置时钟参数和时
阅读全文
摘要:julianday 代表天文朱利安日期,它是自4712年1月1日(公元前4713年)正午以来的天数。为了提高精度,该类存储的日期部分和秒数部分是分开的。并且为了算术安全和表示闰秒,该日期始终存储在国际原子时间标准中 (TimeStandard.TAI) 而这其中的Julian可能我们会有些陌生,但是
阅读全文
摘要:在官方示例的沙盒里写东西是真方便 Cesium中有两种对象可以添加到场景中,Entity、Primitive。Entity对用户更友好,方便使用,但是灵活性和性能差一些。Primitive,支持自定义几何形状和几何对象的材质,可以实现更复杂的效果。 1.polygon(面) var square =
阅读全文
摘要:Cesium中的entities可以随时间变化长度高度,主要依赖于CallbackProperty函数。 因为使用CallbackProperty,cesium中一切可视化的要素都可以与时间联系起来。 定义:new Cesium.CallbackProperty (callback, isConst
阅读全文
摘要:由方程(x/A)^2+(y/b)^2+(z/c)^2=1在笛卡尔坐标系中定义的二次曲面。Cesium主要用来表示行星体的形状。通常使用提供的常量之一,而不是直接构造此对象。 不用new,直接就可以使用其中的方法和变量 Cesium.Ellipsoid.WGS84,非常常用 比如将笛卡尔坐标转换为WG
阅读全文
摘要:function bounds(positions = [], expand = 0) { let minLng = 180 let minLat = 90 let maxLng = -180 let maxLat = -90 positions.forEach(item => { minLng =
阅读全文
摘要:首先发现一个问题,这段代码会报错,原因是"DeveloperError: Expected value to be greater than or equal to0.0125, actual value was 0,不知道为什么经度不能为0 new Cesium.Cartographic.from
阅读全文
摘要://计算三角形面积 function triangleArea(p0, p1, p2) { let v0 = Cesium.Cartesian3.subtract(p0, p1, new Cesium.Cartesian3()) let v1 = Cesium.Cartesian3.subtract
阅读全文
摘要:function triangleArea(p0, p1, p2) { //利用subtract计算出两个向量 let v0=Cesium.Cartesian3.subtract(p0,p1,newCesium.Cartesian3()) let v1=Cesium.Cartesian3.subtr
阅读全文
摘要:先贴一段代码,是dvgis里的distance.js源码,dvgis是cesium的二次封装,可以参考参考: 1import{Cesium}from'@dc-modules/namespace' 2import{Transform}from'@dc-modules/transform' 3 4exp
阅读全文
摘要:2023-01-14 先看效果,wsadqe控制方向升降,鼠标拖动屏幕也可以控制方向 整理下思路: 1. 使用movement变量控制是否进行漫游 2.1 进行漫游则先将enableRotate等全部取消 2.2 绑定Cesium.ScreenSpaceEventType.LEFT_DOWN等事件,
阅读全文
摘要:2023-01-12 1.sampleTerrainMostDetailed 根据提供的terrainPrivider和点的弧度坐标计算出当前点的高度信息。 var p = new Cesium.Cartographic.fromCartesian(new Cesium.Cartesian3.fro
阅读全文
摘要:2023-01-11 1.坐标系 Cartesian3 笛卡尔坐标,又叫世界坐标,是一个三维空间中的点 ,具有xyz,类似:(-1314910.6675027965, 5328726.846411945, 3238183.748823095),单位为米 原点在椭球中心 Cartesian2 是二维空
阅读全文
摘要:2023-01-14 改了下思路,直接根据点击的位置转换为世界坐标系再添加label console.log(`鼠标点击位置为:${click.position}`); var cartesian = that.viewer.scene.globe.pick(that.viewer.camera.g
阅读全文
摘要:2023-01-09 1.viewerDragDropMixin 一个mixin,它为查看器小部件添加了对CZML文件的默认拖放支持。 czml即为json,但json不一定为czml;如同geojson与json的关系。 czml文件通常为一个对象数组,每个id唯一代表一个对象。 CZML使用浏览
阅读全文
摘要:2023-01-09 Cesium虽然也支持两种方式(Entity和Primitive)加载3D Tiles数据, 但因为多数情况下3D Tiles数据都是成片区的数据,数据量比较大,所以为了保证性能,建议使用Primitive方式。 entity和primitives的处理逻辑稍有不同,正因如此,
阅读全文