【cesium入门基础】——坐标系转换

276 阅读2分钟

在Cesium项目开发过程中,经常需要将坐标在各个坐标系之间进行转换以满足需求

经纬度坐标: 经纬度坐标是一种基于地球表面的坐标系统,通常被叫做地理坐标或者地球坐标,专门用来确定地球上任何一个点的位置,主要用经度和纬度两个数值来表示位置。

屏幕坐标系: 屏幕坐标系是一种二维坐标系统,专门用来描述屏幕上的点或者区域的位置。在屏幕坐标系当中,通常是以屏幕的左上角为原点,水平向右是 x 轴正方向,垂直向下是 y 轴正方向。

Cesium中支持两种坐标系:3D笛卡尔坐标系和经纬度坐标系

一、经纬度转笛卡尔坐标

笛卡尔空间直角坐标系

图片

转存失败,建议直接上传图片文件编辑

new Cesium.cartesian3(x,y,z)Cesium.cartesian3.fromDegrees(114,30,1000)

二、笛卡尔转经纬度坐标****

Cesium中的地理坐标单位默认是弧度制,用Cartographic变量表示,通过new Cesium.Cartographic() 创建

构造Cartographic对象

图片

转存失败,建议直接上传图片文件编辑

获取经纬度弧度坐标

let cartographic = Cesium.Cartographic.fromcartesian(cartesian)

转存失败,建议直接上传图片文件

角度于弧度的计算角度转弧度π/180*经纬度弧度变角度180/π*弧度

//弧度坐标转角度坐标

// let lon = 180 / Math.PI * cartographic.longitude// let lat = 180 / Math.PI * cartographic.latitudelet lon = cesium.Math.toDegrees(cartographic.longitude)let lat = cesium.Math.toDegrees(cartographic.latitude)

三、屏幕坐标转笛卡尔坐标****

let cartesain3 = viewer.scene.camera.pickEllipsoid(cartesian2);

转存失败,建议直接上传图片文件

四、笛卡尔转屏幕坐标****

let cartesian2 = Cesium.SceneTransforms.wgs84ToWindo

www.wjx.cn/vm/Qm8Ful2.…