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 坐标系和地理坐标
-