Cesium For Unity Convert WGS84 to Earth Centered Earth Fixed

var longitude = 121d; 
var latitude = 37d;
 var height = 0d; 
double3 d3 = GameObject.Find("CesiumGeoreference").GetComponent<CesiumGeoreference>().TransformEarthCenteredEarthFixedPositionToUnity(CesiumWgs84Ellipsoid.LongitudeLatitudeHeightToEarthCenteredEarthFixed(new double3(longitude, latitude, height))); 
Vector3 position = new Vector3((float)d3.x, (float)d3.y, (float)d3.z);

  

坐标系基础知识

Cesium 可以处理以下坐标系:

  • 纬度、经度、海拔高度:表示地球上某个位置的地理坐标

  • ECEF (Earth-Centered, Earth-Fixed) : 以地球中心为原点的地球固定坐标系

使用 Cesium 时,您需要注意 Unity 空间中的地理坐标和坐标 (x,y,z)。
例如,如果 Unity 的坐标为 (0,0,0),则需要将地理坐标转换为 (35.68958,139.6917,200)。
Cesium 具有使这些转换更容易的功能。

    • CesiumGeoreference

      • TransformUnityPositionToEarthCenteredEarthFixed() :将坐标从 Unity 转换为 ECEF

      • TransformUnityDirectionToEarthCenteredEarthFixed() :将方向从 Unity 转换为 ECEF

      • TransformEarthCenteredEarthFixedPositionToUnity() :将坐标从 ECEF 转换为 Unity

      • TransformEarthCenteredEarthFixedDirectionToUnity() :将方向从 ECEF 转换为 Unity

    • CesiumGlobeAnchor

      • sync():即时同步 Untiy 坐标系和地理坐标

posted @ 2024-10-18 10:28  zhh  阅读(57)  评论(0编辑  收藏  举报