Cesium坐标系之间的相互关系

Cesium 坐标系之间的相互关系

1.WGS84经纬度坐标系(地理坐标系,在Cesium中没有实体对象对应,通常使用经纬度弧度表示位置信息)

wgs坐标系是国际上通用的坐标系,也称地球坐标系,gps和北斗系统都使用的是wgs坐标系。谷歌地图使用的是wgs坐标系(中国部分除外),openstreetmap使用的也是这种坐标系为球面坐标。 参考平面地是椭球面,坐标单位:经纬度;

longitude : 114.59  [-180,180]
latitude : 30.56 [-90,90]

2. WGS84弧度坐标系(Cartographic)

构造函数

 new Cesium.Cartographic(longitude对应弧度, latitude对应弧度, height米);

弧度与角度转换公式

var 弧度 = π / 180 * 经纬度    

Cesium中弧度与角度转换函数

var degrees = Cesium.Math.toDegrees(radians);
var radians = Cesium.Math.toRadians(degrees);

在这里插入图片描述
静态函数

Cesium.Cartographic.fromDegrees(longitude, latitude, height米);
Cesium.Cartographic.fromRadians(longitude对应弧度, latitude对应弧度, height米);

在这里插入图片描述

3. 笛卡尔空间直角坐标系(Cartesian3)

坐标原点是地球椭球体的球心 在这里插入图片描述
构造函数

new Cesium.Cartesian3(x,y,z);

4. 平面直角坐标系(Cartesian2)

也叫屏幕坐标系,在这里插入图片描述

构造函数

new Cesium.Cartesian2(x,y);

相互转换

1、WGS84经纬度(弧度)坐标转换笛卡尔坐标

方法一:

var cartesian3 = Cesium.Cartesian3.fromDegrees(longitude, latitude, height米);
var cartesian3 = Cesium.Cartesian3.fromDegreesArray(coordinates);
var cartesian3 = Cesium.Cartesian3.fromDegreesArrayHeights(longitude, latitude, height米);

方法二(间接法):

var wgs84  = Cesium.Cartographic.fromDegrees(longitude, latitude, height米);var wgs84  = Cesium.Cartesian3.fromRadians(longitude对应弧度, latitude对应弧度, height米);

var cartesian3 = Cesium.Ellipsoid.WGS84.cartographicToCartesian(wgs84);var cartesian3Array =  Cesium.Ellipsoid.WGS84.cartographicArrayToCartesianArray([wgs84,wgs84_1,wgs84_2]);
2、笛卡尔坐标转换WGS84经纬度(弧度)坐标
var cartographic = Cesium.Cartographic.fromCartesian(cartesian3);var cartographic = Cesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian3);var cartographic = Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray([cartesian3,cartesian3_1,cartesian3_2]);
3、屏幕坐标转换场景WGS84经纬度坐标
// 包含地形、倾斜摄影场景、模型等坐标的转换
var cartesian3 = viewer.scene.pickPosition(cartesian2);
// 只包含地形,不包含倾斜摄影场景、模型等坐标的转换(地面坐标拾取,如下图)
let ray = viewer.camera.getPickRay(cartesian2);
let cartesian = viewer.scene.globe.pick(ray, viewer.scene);

在这里插入图片描述

// 屏幕坐标转椭球面坐标,参考椭球体的WGS84坐标,不包括地形、模型、倾斜摄影表面坐标
var cartesian3 = viewer.scene.camera.pickEllipsoid(cartesian2);
4、笛卡尔坐标转换屏幕坐标
var cartesian2 =
Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene,cartesian3)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值