您的位置:

cesiumjs详细教程(cesium开发教程)

cesiumjs详细教程(cesium开发教程)

更新:

本文目录一览:

Cesium在js中调用entity的infobox单机事件

第步创建静态页面von.html并引入vue.js关键核js文件第二步主题元素插入div标签元素并其插入input输入框按钮利用v-on指令绑定点击事件queryDate第三步div标签编写vue.js点击事件事件获取前期第四步让输入框按钮间距设置body元素第五步预览该静态

Cesium初始化选项

基于cesium开发地图时用到的组件是:new Cesium.Viewer(container, options),container为地图在页面中放置位置的id,options是初始化设置的选项,包括是否显示homeButton,动画组件,时间轴以及底图等。具体开发过程中用到的选项可参考官方api( )

常用的选项如下:

Cesium随笔:视锥绘制(上)

第一篇CesiumJS技术日记,不管技术难不难,认真归纳是个好习惯。本文绕弯太多,要直接绘制视锥的请移步 这里 。

最近在研究视域分析,思路:使用ShadowMap.js接口开放的阴影绘制功能,指定点光源的相关参数。然而在调试的过程中发现并没有那么简单,生成ShadowMap对象时会抛出无法在参数中找到Context对象的异常,这个Context对象在Api文档中并没有提及,这个问题在 中提及,Cozzi说不支持,索性视域分析就放一放,先将视锥绘制出来。这里只说关键的地方,primitive的加载、鼠标事件等过程就不多说了。

方案1:确定摄像机位置-确定摄像机方向-生成新相机实体-使用lookAt(target,offset)设置相机位置姿态-获取相机视锥-绘制视锥,该方案应该是标准方法,但是调试过程中绘制的视锥总是出现在地心处,多次尝试无果(和下漫画如出一辙):

切忌钻牛角尖,尝试方案2:

方案2:确定相机位置-确定摄像机方向-生成视锥几何体-计算视锥俯仰角度-计算视锥航向角度-绘制视锥。方案2相对于前者的难点在于相机姿态的计算,原本使用myCamera.lookAt(target,offset)可以直接计算出视锥的姿态,无奈该方法绘制出错,现在只能自己算了(笔者没有找到根据两点计算姿态的函数)。

视锥的形态和初始姿态(yaw-0,pitch-0,roll-0)如下图。

视锥构造参数如下:

frustum:视锥本体,下面详细说明,

origin:轴心,就是那个尖的位置,

orientation:决定相机看的方向,后面再详细说明,

vertexFormat:该参数和视锥绘制没有关系,保持默认即可。

我们选用PerspectiveFrustum,如下是官方doc的构造函数参数。

near和far参数作用如下图,其中虚线是辅助线,不属于绘制的视锥几何体。

fov:查看的视场角,绕z轴旋转,以弧度方式输入。

aspectRatio:垂直边和水平边的比值,如下图的aspectRatio为n。

far,near,fov,aspectRatio四个参数确定了便可以确定视锥的形状。

在程序启动之后的第一件事是通过鼠标选取两个点:起点和瞄准的点,通过这两个点来计算出视锥的姿态,如下图from点便是视锥的origin,这里我们只关心航向(yaw/heading)和俯仰(pitch)两个参数,不关心横滚(roll),我们希望计算出来的航向角和俯仰角通过如下图的这种方式来表示相机瞄准的方位,下图中粉色线是视锥所表示相机所发射的射线。即航向角和俯仰角为0时射线指向x轴方向,航向角增加射线绕着z轴顺时针转动,俯仰角增加射线绕着y轴转动。

计算出的姿态换算成四元素(Quaternion),用作视锥的orientation参数。

不过视锥初始化状态发射的射线(表示的相机所发射)并不是指向x轴方向,而是指向z方向,且航向沿着x的反方向,将视锥航向角-180°,俯仰角-90°,便是视锥理想的初始姿态。

Cesium中的经纬度坐标系和笛卡尔坐标系该选谁呢?上文中提到的姿态所参考的xyz轴是以椭球地表为参考的(x指向正东,y指向正北,z垂直于地面向上),因此选择经纬度更为直观,但是只限于短距离的计算。

俯仰角计算 ,先计算绝对值:

再根据h的正负判断俯仰角的正负值(仰为正,俯为负)。

航向角计算 ,先计算第一象限的值:

现在判断To点的位置,结合之前视锥的初始姿态,计算出最终的航向弧度。

case 区域1:

case 区域2:

case 区域3:无需操作

case 区域4:

当然,这种方法仅仅适用于短距离和靠近赤道的地区,对于笔者的用途足够了。

其实并不推荐这样的方法来计算视锥(不过好歹笔者调试了半天才试出来,也记录一下),后面将叙述推荐的方法。

cesium如何搭建dat.gui

先引入dat.giu.min.js(压缩版)

script src="js/dat.gui.min.js"/script

在js中初始化配置

var viewModel = {emissionRate : 5.0,gravity : 0.0,miniParticleLife : 1.0,maxiParticleLife : 1.0,fly:true}window.onload = function() {gui = new dat.GUI();gui.add(viewModel, 'emissionRate',0,100);gui.add(viewModel, 'particleSize',2 ,60);gui.add(viewModel, 'miniParticleLife',0.1,29.1);gui.add(viewModel, 'maxiParticleLife',0.1,29.1);//复选框按钮gui.add(viewModel, 'fly')}

当数值变化时赋值给对象属性onchange 事件会在域的内容改变时发生

window.onload = function() {var gui = new dat.GUI();gui.add(viewModel, 'emissionRate',0,100).onChange(function (val) {//操作_this.particleSystem.emissionRate = parseFloat(val);});gui.add(viewModel, 'particleSize',2 ,60).onChange(function (val) {_this.particleSystem.particleSize = parseFloat(val);});gui.add(viewModel, 'miniParticleLife',0.1,29.1 ).onChange(function (val) {_this.particleSystem.miniParticleLife = parseFloat(val);});gui.add(viewModel, 'maxiParticleLife',0.1,29.1 ).onChange(function (val) {_this.particleSystem.maxiParticleLife = parseFloat(val);});}

这里就可以完成了。

Cesium实战项目

本人所学GIS专业,毕业后一直从事Cesium相关的GIS开发工作,在业余时间将Ceium中常用的一些功能进行封装,形成能够高效复用的组件。实战项目中的多数功能均来源于实际项目,紧贴业务特性,实用性强,能够在最大程度上帮助个人、团队、公司、企业提高工作效率,节省开发成本。

Cesium实战项目目前共111个实例(后面会继续增加),项目基于Cesium1.7.2+VUE 实现,现有实例如下:

基础底图

1.ArcGIS在线底图

2.谷歌在线底图

3.高德在线底图

4.天地图在线底图

5.本地单张图片

点状对象

6.Cesium点聚合1

7.Cesium点聚合2

8.Billboard加载Gif图片

9.Cesium 闪烁点

10.Primitives加载大量图标点

11.div文本点

12.动态效果点

13.图标点+文字(primitive方式)

单体化

14.倾斜模型分栋单体化 (基于geoserver)

15.倾斜模型分层单体化(基于geoserver)含教程

16.倾斜模型分户单体化(基于geoserver)含教程

编辑绘制

17.点线面绘制

18.点线面编辑

19.点线面绘制扩展

20.点线面编辑扩展

自定义信息框

21.多字段自适应信息框

22.气泡窗口样式1

23.气泡窗口样式2

标注标绘

24.自定义html标注图层

25.军事标绘

26.军事标绘编辑

27.gltf 标绘绘制

28.gltf 标绘编辑

29.行政区标注

30.体对象绘制编辑

轨迹漫游

31.轨迹回放

32.跟随视角漫游

33.第一人称漫游

34.上帝视角漫游

分析

35.Cesium 2维点转3维点

36.Cesium 空间线段等分

37.地表透明(地下模式)

38.通视分析

39.可视域分析

40.缓冲区分析

41.地表开挖(材质贴图)

42.地形开挖(材质贴图)

43.模型裁剪(Planes)

44.矿区岩层效果

45.双屏对比

46.二三维联动(基于openlayers)

场景

47.场景出图(导出图片)

48.自定义天空盒

49.位置信息状态栏控件

50.雨雪雾天气效果

51.限定视角范围

52.绘制反选遮罩

53.自定义空间背景

54.宏观数字地球

55.鹰眼地图(基于openlayers)

56.导航控件

57.云层

58.Tooltip鼠标移入信息

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可视化支持

100.Echarts 迁徙图1

101.Echarts 迁徙图2

102.Echarts 散点图

103.Echarts 流入线

104.Echarts 流出线

MapV可视化支持

105.MapV 迁徙图

106.MapV 大迁徙图

107.MapV 热力图

108.MapV 强边界图

其他

109.3dtiles高度调整

110.文字贴图

111.热力图(基于heatmap.js插件)

在线预览地址   在线预览地址  用户名cesium 密码cesium@sz

cesium 怎样设置web服务器

1.安装node.js

双击运行安装包,安装路径可以自定义,或者默认都可以,安装完成后,打开命令行,输入node -v,如果结果为版本号,表明安装成功。如下图所示。

如果结果为版本号,表明安装成功

2.开启电脑自带的IIS服务

     打开控制面板(直接搜索即可)

     点击程序

选择 启用或关闭Windows功能

在对话框中根据自己需求选择功能,不知道怎么选择可以全选,来防止因为忘记选择某一个功能而报错!

等待下载完成,进度条走完就行了。到此,IIS已开启。

3.配置cesium到IIS。

右击 此电脑 ,选择管理

按照下图,依次展开,然后在网站上右键,选择添加网站。

在这个框中设定网站名称,在物理路径处,选择cesium的安装路径即可。选择一个IP地址即可,选择自己所连wifi的某个地址就行。然后确定即可。配置完成。

在浏览器中输入自己刚配置的IP地址,弹出cesium的页面,就说明环境搭建完成。

cesiumjs详细教程(cesium开发教程)

本文目录一览: 1、Cesium在js中调用entity的infobox单机事件 2、Cesium初始化选项 3、Cesium随笔:视锥绘制(上) 4、cesium如何搭建dat.gui 5、Cesi

2023-12-08
cesiumjs模型,cesium 模型格式

本文目录一览: 1、Cesiumjs可以加载倾斜摄影的OSGB数据吗 2、Cesium 3Dtiles模型多边形裁剪简单整理 3、Cesium的扩展工具包-EarthSDK使用指南1 4、影像加载篇:

2023-12-08
cesiumjs搭建,cesium geojson

本文目录一览: 1、Cesium的扩展工具包-EarthSDK使用指南1 2、构建一个 Vite + Vue3 项目 开发Cesium 3、Cesium实战项目 4、cesium如何搭建dat.gui

2023-12-08
cesium.js开发,Cesiumjs

本文目录一览: 1、Cesium实战项目 2、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 3、Cesium的扩展工具包-EarthSDK使用指南1 4、Cesium初始

2023-12-08
cesiumjs编译(cesium nodejs)

本文目录一览: 1、Cesium初始化选项 2、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 3、Cesium(四)加载影像图层 4、Cesium在js中调用entity

2023-12-08
Cesium API详解

2023-05-19
cesiumjs中文网地址,cesium中文文档

本文目录一览: 1、cesium 怎样设置web服务器 2、Cesium初始化选项 3、Cesium实战项目 4、Cesium的扩展工具包-EarthSDK使用指南1 5、Cesium(四)加载影像图

2023-12-08
cesiumjs介绍,CesiumJS

本文目录一览: 1、cesium截图不显示绘制元素 2、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 3、Cesiumjs可以加载倾斜摄影的OSGB数据吗 4、cesiu

2023-12-08
cesiumjs分屏,CesiumJS

本文目录一览: 1、Cesium指南-自定义vue组件 2、Cesium初始化选项 3、Cesium实战项目 4、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 Cesiu

2023-12-08
java客户端学习笔记(java开发笔记)

2022-11-14
Cesium——开发全球3D可视化应用的利器

2023-05-18
包含cesiumjs官网经常打不开的词条

本文目录一览: 1、cesium截图不显示绘制元素 2、cesium 怎样设置web服务器 3、Cesium初始化选项 4、Cesium实战项目 5、skyline与cesium差异 6、cesium

2023-12-08
java基础第一天学习笔记(java课程笔记)

2022-11-09
cesiumjs地下管道,cesium管线

2022-11-25
Cesium中文API详解

2023-05-20
cesiumjs壁纸的简单介绍

本文目录一览: 1、Cesiumjs可以加载倾斜摄影的OSGB数据吗 2、cesium上如何绑定地球图片添加点击事件 3、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 4

2023-12-08
cesiumjs离线地图(cesium 离线地图)

本文目录一览: 1、Cesium可以加载百度地图吗 2、cesium地图瓦片404默认显示某张图片 3、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 Cesium可以加载

2023-12-08
jsp程序开发学习笔记2,jsp程序设计题库

本文目录一览: 1、《JSP&Servlet学习笔记》pdf下载在线阅读,求百度网盘云资源 2、林信良编著jsp&servlet学习笔记第2版课后答案吗 3、jsp有没有快速掌握的办法呀? 4、要学J

2023-12-08
cesiumjs室内地图(cesium获取地图比例尺)

本文目录一览: 1、Cesium初始化选项 2、cesium地图瓦片404默认显示某张图片 3、Cesium加载在线地图服务 4、cesium 和 Three.js有什么区别,以及二者与WebGL 的

2023-12-08
全能编程开发工程师必备技能——深入掌握viewer.enti

2023-05-21