![](https://img-blog.csdnimg.cn/20200703151231631.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
AboutCesium
文章平均质量分 52
关于Cesium的一切
leemraz
Stay hungry, stay foolish.
展开
-
cesium.d.ts 关联类型声明文件
开发过程中,希望能快速找到类的声明文件d.ts,以便开发。原创 2022-06-14 14:19:36 · 903 阅读 · 0 评论 -
Cesium 常用监听器
1 需求一般为相机、鼠标、帧率监听,在满足一定的条件下做对应的操作。2 常用2.1 相机停止移动//相机移动结束事件let removeChanged = viewer.scene.camera.moveEnd.addEventListener(function(){ //获取当前相机高度 height = Math.ceil(earth.camera.positionCartographic.height);})removeChanged() // 移除监听事件2.2 相原创 2022-02-16 11:35:15 · 7733 阅读 · 0 评论 -
浏览器是否是IE判断以及当前js的来源地址获取
1 背景在引入第三方的库时需要用到对应的资源host地址IE目前Cesium已经抛弃,但有时候项目还要支持,故需要判断增加1.83版本的支持2 方案2.1 当前js来源获取var currentScript = document.currentScript || (function () { var scripts = document.getElementsByTagName("script"); return scripts[scripts.length - 1];原创 2021-10-20 16:44:14 · 228 阅读 · 0 评论 -
cesium 时间影响光照效果、地形照明、水体效果
白膜可以//UTCvar utc=Cesium.JulianDate.fromDate(new Date("2021/07/04 04:00:00"));//北京时间=UTC+8=GMT+8this.viewer.clockViewModel.currentTime = Cesium.JulianDate.addHours(utc,8,new Cesium.JulianDate());原创 2021-08-27 10:58:42 · 2465 阅读 · 0 评论 -
Cesium 默认双击trackedEntity事件取消
文章目录1 背景2 解决方案2.1 方法12.2 方法21 背景Cesium默认通过双击事件trackedEntity,但实际上有些时候并不需要。2 解决方案2.1 方法1Remove the original event handler from the Cesium Widget ScreenSpaceEventHandlerviewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEven原创 2021-07-16 17:05:55 · 2748 阅读 · 1 评论 -
Cesium label相关
记录一下viewer.entities.add({ position: Cesium.Cartesian3.fromDegrees(-122.1958, 46.1915), billboard: { image: "../images/facility.gif", heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, disableDepthTestDistance: Number.POSITI原创 2021-07-13 10:44:42 · 987 阅读 · 0 评论 -
Cesium 浏览器版本要求
文章目录1 背景2 cesium官方3 小结1 背景在BS开发中浏览器的支持,始终是一个问题,无论是甲方的需求,还是自己产品的依赖,都离不开对浏览器的支持情况的了解。最早是查了cesium官网,后来官网改了,地址也就没了,新官方没有找到地址。这里是找到的备份。2 cesium官方官方说明备份老地址记录一下,首先Cesium的渲染依赖的是webgl,所以理论上支持webgl的浏览器即可。检测webgl支持情况网址官方是这么说的Cesium is built on several new H原创 2021-07-08 17:15:38 · 1835 阅读 · 0 评论 -
Cesium 3dtile 数据格式调度源码解析
文章目录1 背景2 源码解析2.1入口模块2.2 类型获取2.3 转换工厂3 总结1 背景Cesium的1.81-1.82版本的更新导致如果tileset.json的初始化字段中不包含geometricError属性字段即将进入下一个类型判断。因为拿不到数据导致undefined,错误报在ModelUtility.computeBoundingSphere的位置。具体错误如下2 源码解析这里简单解析,具体怎么玩转的,还是自己要调试一回。2.1入口模块Cesium3DTile模块的makeC原创 2021-07-07 10:22:09 · 944 阅读 · 0 评论 -
[Q] google map 和 google earth pro 3d模式 黑屏
1 背景google yyds3d模式看不到倾斜摄影,记录一下,本质还是ladder的问题2 解决办法PAC模式切换成全局模式主要是https://kh.google.com/rt/earth/PlanetoidMetadata这个接口掉不了导致的问题有时候就像手里拿这个手机,却在满世界找它2.1 模式切换2.2 效果...原创 2021-07-06 10:16:53 · 870 阅读 · 0 评论 -
3D文件压缩库——Draco简析
此文转自:https://blog.csdn.net/jxt1234and2010/article/details/539991553D文件压缩库——Draco简析今年1月份时,google发布了名为“Draco”的3D图形开源压缩库,下载了其代码来看了下,感觉虽然暂时用不到,但还是有前途的,故简单做下分析。注:Draco 代码地址:https://github.com/google/draco基本使用编译cmake . + make 编译源码,生成 draco_encoder 和 draco转载 2021-06-25 14:37:26 · 1824 阅读 · 0 评论 -
Cesium的技术文档
憋想起了,Aster的战术,鳖,加个????。技术架构后续补充原创 2021-06-21 10:03:13 · 714 阅读 · 0 评论 -
思路之模型卷帘和影像卷帘对比
自己还没有试过感觉这个思路没问题参考文章2个viewer组成的每个宽 50%设置左边宽.left{ width:100%;}然后右边覆盖在上面就行了原创 2021-05-11 15:02:26 · 450 阅读 · 0 评论 -
Cesium之鼠标事件绑定和移除
背景绑定的事件需要移除,否则会一直监听。基于此整理相关方法。方案1 鼠标事件类型// 为整型数据Cesium.ScreenSpaceEventType.LEFT_CLICK //鼠标左击事件Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK //鼠标左键双击事件Cesium.ScreenSpaceEventType.LEFT_DOWN //左键鼠标按下事件Cesium.ScreenSpaceEventType.LEFT_UP //左键鼠标抬起事件C原创 2021-03-30 09:21:56 · 1951 阅读 · 0 评论 -
天地图三维帮助文档(Cesium)
文章来源天地图官网解析是基于Cesium的扩展了Cesium插件代码是压缩混淆的这里主要记录以下:如何使用天地图的影像、电子地图等源生Cesium使用1 UrlTemplateImageryProvider加载类型说明img_w:影像vec_w:电子地图 var token = '你申请的key'; // 服务域名 var tdtUrl = 'https://t{s}.tianditu.gov.cn/'; // 服务负载子域 var sub原创 2021-03-18 14:32:53 · 3598 阅读 · 11 评论 -
Cessium调整模型的位置、高度、旋转
说结果调整位置和高度没问题,旋转有的可以有的不可以。网上有很多方法,针对不同软件生成的3dtiles服务,有的可以有的不可以,与其说别人给的方法不对,不如说自己该去补补数学、图形学知识了。说方案/** * 平移、贴地、旋转模型,白膜有效,倾斜摄影无效(目前只验证过cesiumlab处理的3dtiles数据,其他工具处理的数据有待验证。) * @param {*} tileset * @param {Object} [params] 对象有如下属性: * @param {Object} [pa原创 2021-03-15 15:51:04 · 2959 阅读 · 1 评论 -
Cesium 关于裁切官方回复
一句话就是:Cesium不支持凹多边形裁切,也不知道,多个裁切Q1 Multiple ClippingPlaneCollections for concave clipping polygonshttps://community.cesium.com/t/multiple-clippingplanecollections-for-concave-clipping-polygons/6479Hi everyoneI find that clipping planes for globe and m.原创 2021-03-10 15:02:58 · 1293 阅读 · 2 评论 -
Cesium 光照和后处理 postProcessStages
文章目录前言问题整理1. 开启日照阴影2. 亮度设置3. 去锯齿4. cesium模型变黑的解决5. Imagey的光照调整6. 解决Cesium显示画面模糊的问题7. 开启泛光学习资料备份1. 边缘检测(天际线)createEdgeDetectionStage2. 轮廓(描边)createSilhouetteStage3. 泛光 bloom4. 阴影shadowMap5. 开太阳6. 开月亮7. 开星空8. 开大气9. 添加雨10. 添加雪11. 添加雾12. 添加全屏雾特效13. 黑白14. 高斯模糊原创 2021-02-25 18:28:05 · 12666 阅读 · 3 评论 -
Cesium Property之修改entity属性不生效
先贴几个学习的地址Cesium原理篇:PropertyCesium的Property机制总结,github问题修改entity的width不生效?解决办法原因:其实还没太弄清楚里面的机制,因为直接编辑立即生效,移除后重新生成则不生效,可能是第二次生成的地方出了问题,也可能是其他的原因,后面有空了再研究一下,这里还涉及了一个渐变的动画,后续再搞。使用width.setValue(value)生效// 方法1entity.polyline.width = width.setValue(valu原创 2021-02-04 15:26:58 · 2358 阅读 · 5 评论 -
Cesium API 模块结构图
在实际的开发过程中,基本上会用到上图所示的Cesium API中各个类,我们可以把它按照以下分类进行记忆。Viewer类属性imageryLayers 影像数据terrainProvider 地形数据dataSources 矢量数据entities 几何实体集合(用于空间数据可视化)Widgets 组件,即Viewer初始化界面上的组件Camera 相机Event 事件,鼠标事件、实体选中事件等Scene类属性primitives 图元集合(几何体和外观)postProcessSta.转载 2021-02-04 09:55:53 · 1592 阅读 · 0 评论 -
Cesium 完美保存当前相机视角
1 需求很多场景有这种需求,简单的如图层树的定位到图层,这就包含了实体对象、地图服务、模型服务、特定位置等。常见的对象有:Entity,Cesium3DTileset,ImageryLayer目前Entity,Cesium3DTileset在对象生成时就有bounds属性,可以通过viewer.flyTo/zoomTo等方法来进行定位,而ImagerLayer本来官方可以通过下面方法实现,但从实际情况来看往往很多provider并没有指定rectangle,所以就有了下面的解决方案,保存当前相机视角原创 2021-02-02 19:26:43 · 1357 阅读 · 0 评论 -
Cesium 计算level
Fromhttps://stackoverflow.com/questions/33502620/cesium-js-how-to-get-each-tiles-levelQ1 Cesium.js How to get each tiles’ level?I am trying to get each tiles’ rectangle and level in current view, and use these information to do some ajax request.Now I原创 2021-02-01 10:58:58 · 1227 阅读 · 0 评论 -
城市建筑三维白膜数据的制作
城市建筑数据,指的是一个城市的建筑平面轮廓图,跟某栋建筑的详规、控规图纸不一样,而是城市范围内所有建筑的轮廓,轮廓可以简单的就一个矩形,或者多边形封闭区域,表达的是在这个区域内有栋建筑,不需要详细的信息。白膜建模,应该属于三维建模领域里面,最原始也是最简单的建模了,模型体现的就是一个一个白色的盒子,方式就是把建筑轮廓直接按照指定的高度拉伸即可。城市级别的建筑体量是不能靠一个一个手动在软件中建模的,必须得自动完成。一、纯代码绘制这种方式处理起来也很简单,根据建筑轮廓,可以绘制多边形、墙体等Entity转载 2021-01-25 16:55:03 · 7604 阅读 · 0 评论 -
关于跨域(Cesium开发中调用第三方服务时)
概念首先要理解什么是跨域?出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)解决问题老生常谈的事情了,这里简单总结以下原创 2021-01-08 15:20:48 · 1780 阅读 · 0 评论 -
Cesium 加载4490 MapServer/ImageSever
参考:https://blog.csdn.net/feifei2211/article/details/93872868后续整理原创 2021-01-08 15:10:50 · 1005 阅读 · 0 评论 -
ES6 变量的解构赋值 (Cesium为例)
场景在Cesium或者其他的库开发过程中,如果说需要复用或者重写一个库时会有这种情况,它引用(import)了很多其他的模块代码,要么一一的修改,还有一种方法就是使用ES6 变量的解构赋值例子const { defaultValue, defined, Cartesian3, WebMercatorTilingScheme, Cartographic, Credit, DeveloperError, Event, GeographicProjection, GeographicTilingSc原创 2021-01-08 10:09:47 · 126 阅读 · 0 评论 -
vue cesium 调优
问题Vue的数据双向绑定导致Cesium相关的对象一直被监听。解决办法因为之前就没有放到vue中,所以并没有出现这个问题。但实际随着数据的加载会有一些卡顿,具体原因不明,待后续补充以下为一些博客的内容抽取参考文章1. 记一次Vue整合Cesium内存泄露的解决过程vue项目中整合Cesium在某些页面老是崩溃和卡顿,一般Vue项目内存泄露常发生在某些地方我们引用的第三方库自己创建和维护了DOM,所以Vue在页面卸载时虽然这些对象的引用都释放了,但是因为这些对象自身关联了DOM所以内存无法释原创 2020-12-09 16:57:46 · 4136 阅读 · 0 评论 -
Cesium 物理隔绝-取消默认请求bing底图
说明场景是物理隔绝的网络,即不能使用在线地图服务。这里有一个认证,在离线没网的情况下会一直请求卡在那里。解决方案直接上代码var defaultImagery = new Cesium.ProviderViewModel({ name: "default", creationFunction: function () { return new Cesium.SingleTileImageryProvider({ url: commonUt原创 2020-11-19 15:27:36 · 1126 阅读 · 1 评论 -
wasm 初探WebAssembly & WebAssembly v.s. JavaScript性能比较
前言WebAssembly是近年出现在Web平台的一项新技术,甚至有的人视WebAssembly技术为解决传统js无法解决的问题「比如:密集计算场景下要求高性能的问题,js的弱类型问题等等」的银弹。但是事实真的如此么?WebAssembly到底是什么?为什么WebAssembly可以运行的比js更快?或者说WebAssembly真的比js更快嘛?今天我们会先介绍少量的概念,然后通过一个例子来对比js与WebAssembly之间到底有多大的性能差距。WebAssembly是什么“WebAssembly转载 2020-11-11 14:26:05 · 2107 阅读 · 0 评论 -
cesium 鼠标点击获取坐标
LEFT_CLICK对于鼠标点击事件,传入的参数最好写为 event ,获取位置时调用event.positionMOUSE_MOVE对于鼠标移动事件,参数最好写为movement,调用的时候分为movement.startPosition和movement.endPositionhandler.setInputAction(function (event) { //1.椭球面坐标:获取当前点击视线与椭球面相交处的坐标,在加载地形的场景上获取的坐标有误差 //var earthPositio.原创 2020-11-05 11:20:53 · 913 阅读 · 0 评论 -
Cesium 动态改变多边形的拉伸高度
var viewer = new Cesium.Viewer('cesiumContainer');var dataSource;viewer.dataSources.removeAll();//Seed the random number generator for repeatable results.Cesium.Math.setRandomNumberSeed(0);dataSource = new Cesium.GeoJsonDataSource();var promise = d原创 2020-11-05 10:59:04 · 3162 阅读 · 1 评论 -
Cesium 飞入相关方法
文章目录1. Camera的flyHome方法2. Camera的flyTo方法官网API地址1. Camera的flyHome方法默认位置 Cesium.Camera.DEFAULT_VIEW_RECTANGLE矩形框即视角范围flyHome ( duration )Scene/Camera.js 1454将相机飞到主视图。使用 Camera#.DEFAULT_VIEW_RECTANGLE进行设置3D场景的默认视图。二维和哥伦布视图的主视图显示了整个地图。NameTypeDe原创 2020-10-26 16:08:30 · 4168 阅读 · 2 评论 -
Cesium 坐标介绍及转换
文章目录简介1.坐标介绍1.1 世界坐标1.2 经纬度1.3 弧度2 坐标转换2.1 经纬度转换为世界坐标2.2 世界坐标转换为经纬度2.3 弧度和经纬度2.4 屏幕坐标和世界坐标相互转换2.5 火星坐标,84坐标,百度地图坐标相互转换简介这篇文章的描述比较清晰,图文对照,供参考。1.坐标介绍1.1 世界坐标Cartesian3:笛卡尔空间直角坐标系new Cesium.Cartesian3(x, y, z)可以看作,以椭球中心为原点的空间直角坐标系中的一个点的坐标。1.2 经纬度//转载 2020-10-26 15:09:44 · 354 阅读 · 0 评论 -
Cesium API 文档地址
文章目录1. 简介2. URL1. 简介也不知道什么原因官网有时候就是进不去,以下做一个记录方便查看。2. URLCesium官网地址Cesium.xin,中文版超图,中文版原创 2020-10-26 14:55:35 · 394 阅读 · 0 评论 -
Cesium 默认界面组件显示和隐藏
方法1 (推荐)<body><div id="cesiumContainer"></div><script>var viewer = new Cesium.Viewer('cesiumContainer');viewer.animation.container.style.display ='none';//隐藏动画控件viewer.timeline.container.style.display ='none';//隐藏时间线控件viewer.转载 2020-10-14 14:44:50 · 1581 阅读 · 1 评论 -
Cesium 地下场景
1 需求一直认为在三维方面在地下场景做的并不是很好,要么是数据问题,要么是展现的性能问题。Cesium在1.70的版本推出了地下的模式,最近也会做这方面的应用,效果怎么样,拭目以待。2 参考资料Cesium官网博客介绍地下设施、矿井、地质层等数据在Cesium中的可视化Cesium官网示例[Enable globe transparency](https://sandcastle.cesium.com/index.html?src=Globe Translucency.html)[Enab原创 2020-09-27 15:10:24 · 643 阅读 · 0 评论 -
Ceium 关于贴地
要理解一个概念,贴地是针对 terrain 或者 3D Tilesentity实现方式:classificationType: Cesium.ClassificationType.BOTHclampToGround: true[官网示例 Classification Types]([https://sandcastle.cesium.com/?src=Classification%20Types.html&label=All](https://sandcastle.cesium.com/?原创 2020-08-05 09:33:49 · 981 阅读 · 0 评论 -
Cesium 常见基础功能点
文章目录前言内容1 Cesium logo去除2 Cesium 二三维切换前言一些Cesium常用的方法或者属性记录内容1 Cesium logo去除viewer.cesiumWidgets.creditContainer.style.display = 'none'2 Cesium 二三维切换场景状态模式有如下4中Cesium.SceneMode.COLUMBUS_VIEW//1哥伦布视图 Cesium.SceneMode.SCENE2D//2维模式Cesium.SceneMode原创 2020-07-28 17:47:21 · 2136 阅读 · 0 评论 -
Cesium ES6 VSCode 智能提示
场景工欲善其事必先利其器因为涉及一些Cesium源代码的修改和优化,不通过package的依赖包引入,直接通过本地引入,如下:import * as Cesium from "cesium/Cesium";效果:解决办法简单的一个办法就是把Cesium.d.ts里面的declare module "cesium"替换为declare module "cesium/Ceium"原因分析d.ts定义的方法,变量,或者模块,在使用时必须是一一对应关系参考资料import from原创 2020-07-27 19:54:35 · 965 阅读 · 0 评论