Cesium开发中,如果想要看到真实感,地形数据(DEM)不可或缺。
首先,地形数据是什么?拿DEM数据来说,DEM数据就是数字高程模型,就是描述每个点位的高程数据而已,没有其他附加信息,更不会包含影像图,单独展示是看不出什么名堂的。DEM数据在ArcGIS中打开只能看到是灰度图。
其次,如何展示呢?地形数据需要结合影像图或者普通瓦片来展示才能看到地球表面的高低起伏状态;结合影像图展示效果最佳。
下面我将从获取DEM数据到最后成功展示到Cesium中,详细描述其中的各个步骤,希望对大家有所帮助。
7运行页面,打开之后,定位到有地形数据的地方。
从正上方俯视,地形数据已经很明显了
按住Ctrl键,旋转地球,从地平线方向看,地形数据更明显,效果更好。
最后再重复一下,地形数据单独是没法展示出来看的,只是一堆高程数据而已。结合影像图来展示,效果最佳。
注意:最好把项目服务和高程数据服务部署在同一个服务器和端口下,避免跨域。
本文主要参考了 >
常用来描述屏幕坐标系,比如鼠标在电脑屏幕上的点击位置,返回的就是Cartesian2具体的是鼠标点击位置距离canvas左上角的像素值。屏幕左上角为原点(0, 0),水平方向为X轴,向右为正,垂直方向为Y轴,向下为正。
常用方法:
笛卡尔空间坐标的原点就是椭球的中心,我们在计算机上进行绘图时,不方便使用经纬度直接进行绘图,一般会将坐标系转换为笛卡尔坐标系,使用计算机图形学中的知识进行绘图。
new CesiumCartesian3(x, y, z)
返回3D笛卡尔点
类型是Number哦!
类型是Number哦!
类型是Number哦!
WGS84坐标系(World Geodetic System 1984)是为GPS全球定位系统使用而建立的坐标系统,坐标原点为地球质心,其地心空间直角坐标系的Z轴指向BIH (国际时间服务机构)1984O定义的协议地球极(CTP)方向,X轴指向BIH 19840的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系。我们平常手机上的指南针显示的经纬度就是这个坐标系下当前的坐标,经度范围[-180,180],纬度范围[-90,90]。
BUT!
BUUUUUT!!!
Cesium目前支持两种坐标系WGS84和WebMercator,但是没有实际的对象来描述WGS84坐标,都是 以弧度的方式,即Cartographic类来运用的
new CesiumCartographic ( longitude , latitude , height )
由经度,纬度和高度定义的位置。
单位是弧度哦!
单位是弧度哦!
单位是弧度哦!
只写一下自己用得多的
以后要是有用到新的再说
简记版本:弧度就是几分之 ,角度就是多少多少度, Mathxxx(x)里的x通常需要是弧度!!!
角转弧: CesiumCesiumMathtoRadians(degrees)
弧转角: CesiumCesiumMathtoDegrees(radians)
通常是对获取的坐标进行计算的时候用,比如同文件夹下的测距测面里,测距测面都是首先要把cartesian3形式的坐标转换成Cartographic形式拿到经纬高度,然后才好计算
CesiumCartographicfromCartesian(position)
通常是算好一个需要的点以后要添加实体的时候用,比如测距的时候添加线段中点
CesiumEllipsoidWGS84cartographicToCartesian(cartographicPosition)
思路:先从笛卡尔坐标转到弧度坐标,再从弧转角
Cesium点线面绘制是很基本的功能,数据采集类型的系统必须具备此功能。但是Cesium并没有提供相关可以直接使用的绘制方法,只能自己进行封装,虽然实现起来不是很难,但是对Cesium不太熟的同学还是比较麻烦的。
在Cesium中,虽然没有提供鼠标交互绘制的相关类,但是我们可以通过监听鼠标点击事件,获取点击点坐标串,这样就能够实现鼠标交互绘制的功能。Cesium中的ScreenSpaceEventHandler类提供鼠标各种事件,如鼠标左键点击,鼠标右键点击等。我们只需构建此对象,监听鼠标左键点击事件、鼠标移动事件,鼠标右键事件,即可实现绘制功能。
获取方式 Cesium实战项目
我们加载一个3DTileset 到地图里面了,怎样获取这个3DTileset 对象下面的feature呢。比如获取某个房屋的构件“窗子”
1,通过点击事件获取
2,通过对3DTileset 对象添加监听和回调函数获取
3,通过tileset tileVisible监听获取 feature
4,通过 _selectedTiles对象获取被选中的featrue
5,从Cesium3DTileFeature里获取Cesium3DTileset
Cesium 当前时间
viewerclockcurrentTime 是当前时间
viewerclockstartTime 是初始时间
cesium 已知经纬度获取高度
补充一下,这个Cesiumwhen方法是异步的
本人所学GIS专业,毕业后一直从事Cesium相关的GIS开发工作,在业余时间将Ceium中常用的一些功能进行封装,形成能够高效复用的组件。实战项目中的多数功能均来源于实际项目,紧贴业务特性,实用性强,能够在最大程度上帮助个人、团队、公司、企业提高工作效率,节省开发成本。
Cesium实战项目目前共111个实例(后面会继续增加),项目基于Cesium172+VUE 实现,现有实例如下:
基础底图
1ArcGIS在线底图
2谷歌在线底图
3高德在线底图
4天地图在线底图
5本地单张
点状对象
6Cesium点聚合1
7Cesium点聚合2
8Billboard加载Gif
9Cesium 闪烁点
10Primitives加载大量图标点
11div文本点
12动态效果点
13图标点+文字(primitive方式)
单体化
14倾斜模型分栋单体化 (基于geoserver)
15倾斜模型分层单体化(基于geoserver)含教程
16倾斜模型分户单体化(基于geoserver)含教程
编辑绘制
17点线面绘制
18点线面编辑
19点线面绘制扩展
20点线面编辑扩展
自定义信息框
21多字段自适应信息框
22气泡窗口样式1
23气泡窗口样式2
标注标绘
24自定义html标注图层
25军事标绘
26军事标绘编辑
27gltf 标绘绘制
28gltf 标绘编辑
29行政区标注
30体对象绘制编辑
轨迹漫游
31轨迹回放
32跟随视角漫游
33第一人称漫游
34上帝视角漫游
分析
35Cesium 2维点转3维点
36Cesium 空间线段等分
37地表透明(地下模式)
38通视分析
39可视域分析
40缓冲区分析
41地表开挖(材质贴图)
42地形开挖(材质贴图)
43模型裁剪(Planes)
44矿区岩层效果
45双屏对比
46二三维联动(基于openlayers)
场景
47场景出图(导出)
48自定义天空盒
49位置信息状态栏控件
50雨雪雾天气效果
51限定视角范围
52绘制反选遮罩
53自定义空间背景
54宏观数字地球
55鹰眼地图(基于openlayers)
56导航控件
57云层
58Tooltip鼠标移入信息
59书签管理
60旋转的地球
61绕点旋转
62场景泛光
工具
63场景测量工具
64鼠标位置拾取工具
特效
65动态线、流动线
66流向动态线
67动态水面效果
68动态扩散圆
69动态立体墙
70粒子系统
71圆形波纹效果
72矢量白膜自定义shader(不改源码)
73光晕线
74动态立体墙(升级)
75圆形、规则多边形动态围墙
76围墙扩散动画
77光柱椎体
78数字工厂
79六边形扩散扫描
80圆形扩散扫描
81模型热力图
82动态传输线
83扫描线
行业应用
84雷达扫描效果
85雷达追踪圆锥体
86雷达追踪四棱锥体
87雷达遮罩扫描
88相控阵雷达范围
89雷达放射波
90卫星视椎体(四棱锥体)
91视频贴图参数调整
92视频融合
93目标跟踪
94动态目标检测
95视频窗口(普通视频)
96视频窗口(rtmp视频)
97视频墙(含编辑)
98动态水域
99水闸放水效果
Echarts可视化支持
100Echarts 迁徙图1
101Echarts 迁徙图2
102Echarts 散点图
103Echarts 流入线
104Echarts 流出线
MapV可视化支持
105MapV 迁徙图
106MapV 大迁徙图
107MapV 热力图
108MapV 强边界图
其他
1093dtiles高度调整
110文字贴图
111热力图(基于heatmapjs插件)
在线预览地址 在线预览地址 用户名cesium 密码cesium@sz
如果我们要在web端加载我们自身的数据,超图和cesium都有方法,cesium方法比较简单,可以用到cesiumlab这个比较方便的工具。其中有倾斜数据(osgb)处理方法。其中只要数据正确,他会自动读取倾斜摄影中的坐标。切出来的数据通过添加3dtiles的方法就能够正确的添加到web端的网页中。(新版本的cesium好像要添加token才能够添加底图,可以去申请ion。清楚原因的小伙伴可以科普一下为啥)
若果不设置中心点坐标的,生成的数据可能会生成达到大西洋上(0,0),所以我们要获取倾斜摄影的中心点坐标。smart 3d导出的倾斜摄影会有这个文件metadataxml打开该文件
其中包含了它的投影以及中心点坐标。可以通过在线网址: >
以上就是关于Cesium中地形数据(DEM)的加载全部的内容,包括:Cesium中地形数据(DEM)的加载、Cesium随笔:视锥绘制(上)、个人笔记|三维GIS开发-cesium坐标系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)