unity 经纬度转换成坐标
时间: 2023-09-03 07:16:49 浏览: 132
Unity经纬度与坐标转换GisPointTo3DPoint
在 Unity 中将经纬度转换为坐标可以使用以下代码:
```csharp
using UnityEngine;
public static class GPSToUnity
{
public static Vector3 GetUnityPosition(float latitude, float longitude)
{
const float EARTH_RADIUS = 6378137f; // 地球半径,单位为米
float x = EARTH_RADIUS * Mathf.Cos(latitude * Mathf.Deg2Rad) * Mathf.Cos(longitude * Mathf.Deg2Rad);
float y = EARTH_RADIUS * Mathf.Cos(latitude * Mathf.Deg2Rad) * Mathf.Sin(longitude * Mathf.Deg2Rad);
float z = EARTH_RADIUS * Mathf.Sin(latitude * Mathf.Deg2Rad);
return new Vector3(x, z, y);
}
}
```
使用方法:
```csharp
// 在某个脚本中调用 GetUnityPosition 方法即可,传入经度和纬度
Vector3 position = GPSToUnity.GetUnityPosition(31.2304f, 121.4737f);
```
这样就可以将经纬度转换为 Unity 中的坐标了。需要注意的是,该方法中的经度和纬度分别代表的是 X 轴和 Z 轴,因此方法返回的 Vector3 坐标的 X 和 Z 轴需要调换位置。
阅读全文