cesium学习——cesium中的坐标
一、坐标展现形式
在cesium中,对于坐标数值单位有三种:角度、弧度和坐标值
1.角度
角度就是我们所熟悉的经纬度,对于地球的坐标建立如下:

图中以本初子午线作为x和z的面,建立了一个空间坐标系。可知在纬度方向上,角1的范围为-90~90,即南纬90°~北纬90°,角2的范围是-180~180,即东经180°~西经180°。
2.弧度
角度还可以用弧度表示,初中数学知识,180°=Π。在cesium中很多函数的参数都是使用弧度作为单位。
3.坐标值
这个坐标值就如上图中所建立的坐标系,但是不同的是数值是我们所说的坐标系的数据,例如Cartesian3(笛卡尔坐标系)对象中的x、y、z所代表的数值。那么这个对象所代表的值是什么样的范围呢?我们使用可以将地图的0,0点作为经纬度转换为cartesian3对象,并将其输出例如:
var point = Cesium.Cartesian3.fromDegrees(0,0,0);
console.log(point);
结果为(6378137, 0, 0),为什么x坐标会是6378137呢?这是因为Cartesian3在创建的时候,是需要设置椭球体,也就是地球的。我们上面使用的方法的api如下:

第三个参数就是设置椭球体。默认是Ellipsoid.WGS84,我们把这个椭球体输出得到的是:(6378137, 6378137, 6356752.314245179),可以看到这个x坐标的值就是我们(0,0)点最后转换后的X坐标的值,构建一下坐标系可能会更清楚些:

这样的话,如果经纬度坐标是(90,0)转换成笛卡尔坐标就是(0,6378137,0),经纬度(0,-90)就是(0,0,-6356752.314245179)。另外可以将笛卡尔坐标的单位理解成米,圆心就是椭球的中心。这样当我们想要对cesium中的物体进行米级别的控制使用笛卡尔坐标系的表示就很好控制。
二、三种坐标的换算方式:
1.角度和弧度的转换
在cesium中Math对象中的函数可以用来完成角度和弧度之间的换算。
角度转为弧度:弧度值 = Cesium.Math.toRadians(角度值);
弧度转为角度:角度值 = Cesium.Math.toDegrees(弧度值);
这两个方法是单纯的将二者进行换算,另外cesium中很多的对象中是有专用的换算函数的。
2.角度、弧度与Cartesian3的转换
角度转换为Cartesian3:
Cesium.Cartesian3.fromDegrees
Cesium.Cartesian3.fromDegreesArray
弧度转换为Cartesian3:
Cesium.Cartesian3.fromRadians
Cesium.Cartesian3.fromRadiansArray
三、高度呢
这个时候我们可能会问Cartesian3可以通过控制x,y,z的数值来控制高度,那么经纬度和弧度呢?
此时Cartographic对象就登场了,看下这个对象初始化的三个参数:

用弧度表示的经纬度,以及以米为单位的高度。此时我们就需要加入如下的转化:
弧度转为Cartographic:
Cesium.Cartographic.fromRadians
经纬度转为Cartographic:
Cesium.Cartographic.fromDegrees
Cartographic转为Cartesian3:
Cesium.Cartographic.toCartesian
Cartesian3转为Cartographic:
Cesium.Cartographic.fromCartesian
至此,cesium中整个的坐标转化已经基本包括,Cartesian2和Cartesian4因为没有用过,暂时没有加进来。下面我绘制坐标转换图来表示:

第二周技术文档完成
cesium学习——cesium中的坐标的更多相关文章
- cesium 学习(六) 坐标转换
cesium 学习(六) 坐标转换 一.前言 在场景中,不管是二维还好还是三维也罢,只要涉及到空间概念都会提到坐标,坐标是让我们理解位置的一个非常有效的东西.有了坐标,我们能很快的确定位置相关关系,但 ...
- cesium 学习(五) 加载场景模型
cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...
- cesium学习--初识
一.Cesium 官方介绍:CesiumJS是一个开源的JavaScript库,用于世界级的3D地球仪和地图.任务是为静态和时间动态的内容创建领先的3D地球和地图,具有最好的性能.精度.视觉质量.平台 ...
- Cesium学习笔记-工具篇20-PrimitiveTexture自定义渲染-贴图【转】
前几篇博客我们了解了自定义点.线.面绘制,这篇我们接着学习cesium自定义纹理贴图.我们完成点线面的绘制,只是绘制出了对象的框架,没有逼真的外观.逼真外观是需要设置材质来实现:Material . ...
- Cesium学习系列汇总
内容比较多,完整看完需要大概10分钟,废话不多说,撸起袖子,加油干!!! 1.前言 按照套路,先介绍一下什么是Cesium. Cesium ['siːzɪəm]是JavaScript开源库,通过Ces ...
- 最近开始学习Cesium,学习学习。
最近开始学习Cesium,学习学习.
- Cesium学习笔记(九):导入3D模型(obj转gltf)
在用cesium的过程中难免需要导入别人做好的3D模型,这时候就需要将这些模型转成gltf格式了 当然,官方也给了我们一个网页版的转换器,但是毕竟是网页版的,效率极其低下,文件还不能太大,所以我们就需 ...
- 学习cesium,关于图层界面的切换
最近学习cesium的3D引擎,有关图层切换的例子比较少,在官网上看见了一些例子加以自己的理解.投机了一种近似于图层切换的效果. 这种图层切换每次点击按钮时,会把其他的数据和实体给删除.然后再创建或加 ...
- javascript中常用坐标属性offset、scroll、client
原文:javascript中常用坐标属性offset.scroll.client 今天在学习js的时候觉得这个问题比较容易搞混,所以自己画了一个简单的图,并且用js控制台里面输出测试了下,便于理解. ...
随机推荐
- 【fullGC】内存监控工具
什么是fullGC: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的J ...
- python算法与数据结构-队列(44)
一.队列的介绍 队列的定义:队列是一种特殊的线性表,只允许在表的头部(front处)进行删除操作,在表的尾部(rear处)进行插入操作的线性数据结构,这种结构就叫做队列.进行插入操作的一端称为队尾,进 ...
- java泛型的作用及其基本概念
一.泛型的基本概念 java与c#一样,都存在泛型的概念,及类型的参数化.java中的泛型是在jdk5.0后出现的,但是java中的泛型与C#中的泛型是有本质区别的,首先从集合类型上来说,java 中 ...
- python的比较关系运算符和逻辑运算符
比较运算符 运算符 描述 示例 == 检查两个操作数的值是否相等,如果是则条件变为真. 如a=2,b=2则(a == b) 为 true. != 检查两个操作数的值是否相等,如果值不相等,则条件变为真 ...
- Linux 勿卸载软件,所有命令不能用了咋办
1. 一次有趣的事 有个做技术的(不说什么岗位,容易被人喷,谁都有失手的时候),在公司的业务测试环境的机器,卸载了一个软件rpm -e --nodeps filesystem* , 导致机器所有的命令 ...
- Codeforces 755B:PolandBall and Game(map+思维)
http://codeforces.com/problemset/problem/755/B 题意:A可以喊出n个字符串,B可以喊出m个字符串,如果一个字符串之前被喊过,那么它再也不能喊了,A先喊,最 ...
- Vue技术点整理-前言
前言 Vue版本说明:本文档编写时,Vue稳定版本为 2.6.10 本文档编写目的为:整理Vue相关生态的技术点.和开发中经常使用到的技术点,让开发者快速上手开发,提升开发效率 一,Vue开发工具:本 ...
- happy and angry day! 2019-07-05
2019-07-05 01:59:51 现在我是挺开心的哈! 直面困难!迎难而上!毫无畏惧! 现在我的结果,少不了大家给我的支持与鼓励! 鸣谢 章香涛老师---------在各个方面鼓舞了我,激发了我 ...
- Salesforce Admin篇(二) Report
针对salesforce系统也好,针对其他的平台系统也好,对于business user的需求以及疑问,数据往往决定了答案.业务人员提出了某些疑问,管理员需要根据需求的分析转换成数据的分析及过滤从而反 ...
- Bzoj 1040 [ZJOI2008]骑士 题解
1040: [ZJOI2008]骑士 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5368 Solved: 2044[Submit][Status ...