随笔分类 - cesium
1
摘要:闪烁的核心就是根据时间变颜色或者透明度 时间我们可以采用如下代码 fract 代表取小数,czm_frameNumber 是一个根据帧率无限增大的数值,如下公式就是一个0-1之间无限循环的数值,根据这个数值我们就可以做到闪烁的效果 float time = fract(czm_frameNumber
阅读全文
摘要:以贴底线 GroundPolylinePrimitive 为例 我们知道,primitive的更新机制主要是通过update函数,所以通过源码我们可以很容易找到如何对针对性的更新属性。 可以看到,update 每次都会判断 _primitive 这个属性,如果他未定义,则重新构建geometry相关
阅读全文
摘要:viewer.render(); viewer.canvas.toDataURL("image/png");
阅读全文
摘要:找到cesium的package.json 将widgets.css手动导出:
阅读全文
摘要://1.计算屏幕坐标 let position = Cesium.Cartesiian3.fromDegrees(jd, wd, 0); let chanedc = Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, posit
阅读全文
摘要:仓库里更新了卷帘功能,简单记录一下。 卷帘功能如下图所示,将地球分为左右两块,通过中间的卷帘进行滑动,可以有效地进行左右对比,针对序列数据有良好的展示效果。 如下接口,Cesium 本身就支持我们针对地球左右两侧显示不同的图层。 故我们只需要对加载的图层设置 SplitDirection 属性就可以
阅读全文
摘要:近期做了二三维视图联动,简单记录一下。 主要功能就是同时开启二维和三维视图一起查看。 大概思路就是新创建一个 2D 视图,相机实时同步(其实部分资源也应该同步,不过这需要做一个数据状态管理的功能,让数据在两个视图同步,懒得做了,后面要做资源管理的功能再说吧)。 二维和三维视图其实相机焦点是有区别的,
阅读全文
摘要:最近将 mapv 一些官方示例移植到了 Cesium 上,记录一下问题 mapv示例:mapv (baidu.com) mapv 本身没有提供类型定义文件,直接通过 npm 下载的 mapv 库也只有 build 好的文件,故直接把 mapv.js 放到到工程内使用 注意,此处第一个坑就出来了,ma
阅读全文
摘要:最近做了个Cesium几何编辑的功能,通过鼠标画点线面等,记录一下问题 感兴趣的朋友可以移步:LiZzhi/cesium-plugin (github.com) 功能本身不难,无非就是封装鼠标事件,记录好数据,随时可以撤销,清除。 在做画矩形时,一些坐标转换的操作折腾了我挺久(学测绘的让坐标转换绕蒙
阅读全文
摘要:记录一下 TS + Cesium 配置过程 首先 npm 安装 cesium 和 webpack 一众包,如下: { // package.json "dependencies": { "@babel/preset-env": "^7.20.2", "@open-wc/webpack-import-
阅读全文
摘要:Cesium中,轨迹漫游的核心是借助CZML格式,CZML是Cesium团队制定的一种用来描述动态场景的JSON架构语言,可以用来描述点、线、多边形、体、模型及其他图元,同时定义它们是怎样随时间变化的,参考CZML Structure · AnalyticalGraphicsInc/czml-wri
阅读全文
摘要:安装好cesium后,配置vue.config.js const CopyWebpackPlugin = require("copy-webpack-plugin") const webpack = require("webpack") const path = require("path") le
阅读全文
摘要:新版Vue目录: 将下载好的Cesium放入public中: index.html引入: 然后启动: 但是会报错: 'Cesium' is not defined no-undef 找不到Cesium,问题出在代码检查eslint中 在package.json中(旧版.eslintrc.js)找到e
阅读全文
摘要:位置参数positions positions:Cesium.Cartesian3.fromDegreesArray([ -120.0, 40.0, -110.0, 30.0 ]) 为了防止高度过低导致点之间的连线穿过地球,可重新计算在表面上的长度 positions:Cesium.Polyline
阅读全文
摘要:show: true, //是否显示,默认为true pixelSize: 10, //尺寸 outlineColor: Cesium.Color.YELLOW, //轮廓默认为TRANSPARENT透明的 outlineWidth: 3 //轮廓宽度
阅读全文
摘要:Label 一些参数 font:"24px Helvetica" //先字号再字体 fillColor: new Cesium.Color(0.6, 0.9, 1.0) //填充颜色 outlineColor:Cesium.Color.BLACK //边框颜色 outlineWidth:2 //边框
阅读全文
摘要:以billboard为例,有好多类都有这个方法 billboards.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(坐标); 重新构建坐标系,以这个坐标为原点建立笛卡尔坐标系 billboards.add({ image: url,
阅读全文
摘要:scale:1.0 调大小 sizeInMaters:true 是否设置物理大小,是否固定为屏幕上的大小不变,true为设置物理大小 scaleByDistance: new Cesium.NearFarScalar(1.5e2, 2.0, 1.5e7, 0.5) 设置远近大小,当视野为第一个参数时
阅读全文
摘要:必须让时间动起来!!! 时间动起来才能正常播放 1 var viewer = new Cesium.Viewer("cesiumContainer",{ 2 shouldAnimate: true //时间开始动 3 }); 循环某个动作 1 model.readyPromise.then(func
阅读全文
摘要:设置后当相机高度达到设置的最大和最小高度时将不再放大和缩小 viewer.scene.screenSpaceCameraController.minimumZoomDistance = 250000;//相机的高度的最小值viewer.scene.screenSpaceCameraControlle
阅读全文
1