Cesium 笛卡尔坐标转换

Cesium 笛卡尔坐标转换_第1张图片

Cesium中主要使用笛卡尔坐标系,球心相当于原点

 z轴不是高度,高度是点到地表的距离,贴在表面高度就为0,z改变,x,y都会随之改变;

1.经纬度转笛卡尔

 // (经度 纬度 高度),返回的是一个笛卡尔坐标

const cartesian = Cesium.Cartesian3.formDegrees(113,31,20) 

console.log(cartesian)

输出值:

        x: -2138083.9792473926

        y: 5037010.200839833

        z: 3265903.817415441

2.笛卡尔转经纬度

(1)笛卡尔首先转为弧度坐标

    const cartographic = Cesium.Cartographic.fromCartesian(cartesian)

    console.log(cartographic)

    输出值:

        height: 19.999999999913584

        latitude: 0.541052068118242

        longitude: 1.9722220547535925

(2)弧度转经纬度

    let lon = Cesium.Math.toDegrees(cartographic.longitude)

    let lat = Cesium.Math.toDegrees(cartographic.latitude)

    console.log(lon,lat,cartographic.height) 

    输出值:

        lon:113

        lat:30.999999999999993

        height:19.999999999

 不精确是因为js精度丢失的问题,对坐标精度不影响。

你可能感兴趣的:(cesium,javascript,前端,webgl)