Cesium中地形数据(DEM)的加载

Cesium中地形数据(DEM)的加载,第1张

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坐标系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9440942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存