美文网首页cesium
cesium-坐标转换

cesium-坐标转换

作者: 姜治宇 | 来源:发表于2022-01-20 11:26 被阅读0次

弧度和角度

度和弧度都是衡量角的大小的单位,就像米(m)和英寸(in)都是用来衡量长度的单位。度用°来表示,弧度用rad表示。
度和弧度之间可以相互转换,转换规则为:
1rad = (180/π)° ≈ 57.3°
1° = (π/180)rad ≈ 0.01745rad
比如求90°角的弧度,就是:
0.01745*90=1.5705rad

经纬度

提到经纬度,一般是指角度。经度的范围在[-180,180],而纬度在[-90,90]。当然我们也可以换算成弧度。cesium的api,有些需要传弧度,有些是角度,使用前一定要仔细阅读。

 var cartographic_rad= new Cesium.Cartographic(1.9, 0.6, 0);//经纬度参数,需要传弧度
    console.log(cartographic_rad);//Cartographic {longitude: 1.9, latitude: 0.6, height: 0}
    //弧度转为角度
    let lon = Cesium.Math.toDegrees(cartographic_rad.longitude);
    let lat = Cesium.Math.toDegrees(cartographic_rad.latitude);
    console.log(`经度:${lon}°,纬度:${lat}°`);//经度:108.8619810748564°,纬度:34.37746770784939°

    //角度转为弧度
    let lon_rad = Cesium.Math.toRadians(108.8619810748564);
    let lat_rad = Cesium.Math.toRadians(34.37746770784939);
    console.log(`经度(弧度):${lon_rad}rad,纬度(弧度):${lat_rad}rad`);//经度(弧度):1.9rad,纬度(弧度):0.6rad

世界坐标

世界坐标,表示以球心为原点的空间直角坐标系,可以与经纬度之间做转换。

  //======经纬度转世界坐标===========//
    let cartesian =  Cesium.Cartesian3.fromRadians(1.9,0.6,0);
    console.log(cartesian);//Cartesian3 {x: -1703648.8084007443, y: 4986746.192953569, z: 3581081.741917722}

    let cartesianDeg =  Cesium.Cartesian3.fromDegrees(108.8619810748564,34.37746770784939,0);
    console.log(cartesianDeg);//Cartesian3 {x: -1703648.8084007443, y: 4986746.192953569, z: 3581081.741917722}
//===========世界坐标转经纬度========//
    let cartographic = Cesium.Cartographic.fromCartesian(cartesian);
    console.log(cartographic);//Cartographic {longitude: 1.9000000000000001, latitude: 0.6000000000000001, height: -1.3969838619232178e-9}
    //弧度转为角度
    let longitude = Cesium.Math.toDegrees(cartographic.longitude);
    let latitude = Cesium.Math.toDegrees(cartographic.latitude);
    console.log(`经度:${longitude}°,纬度:${latitude}°`);//经度:108.86198107485642°,纬度:34.3774677078494°

实体的位置一般是用世界坐标。

    let viewer = new Cesium.Viewer('cesiumContainer');
    viewer.entities.add({
    name: 'this is a box',
    position: Cesium.Cartesian3.fromDegrees(-107.0, 40.0, 300000.0),//经纬度转世界坐标
    box: {
        dimensions: new Cesium.Cartesian3(400000.0, 300000.0, 500000.0),//世界坐标 Cartesian3 {x: 400000, y: 300000, z: 500000}
        material: Cesium.Color.YELLOW.withAlpha(0.5)
        }
    });

相关文章

  • cesium-坐标转换

    弧度和角度 度和弧度都是衡量角的大小的单位,就像米(m)和英寸(in)都是用来衡量长度的单位。度用°来表示,弧度用...

  • 坐标转换

    http://blog.csdn.net/qq_35607510/article/details/53992602...

  • 坐标转换

    (CGRect)convertRect:(CGRect)rect toView:(nullable UIView ...

  • 坐标转换

    近两天需要把平面坐标转换为标准的WGS84后使用百度逆地址编码搜索出资料记录一下 类库 程序ProjNet4Geo...

  • 坐标转换

    1、将米转换成坐标度数 2、根据坐标点和半径将地图缩放到合适等级

  • 👈坐标转换

    / 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值 -(CGPoi...

  • 坐标转换

  • 坐标转换

    世界空间 如何转换为 屏幕空间?

  • 坐标转换

    像素坐标转世界坐标的计算[https://www.jianshu.com/p/4566a1281066]

  • 坐标转换

    matlab计算过程 >> y1=[1.5035820007324219 2.1732330322265625 1...

网友评论

    本文标题:cesium-坐标转换

    本文链接:https://www.haomeiwen.com/subject/isljhrtx.html