【发布时间】:2014-02-26 15:18:44
【问题描述】:
我正在尝试创建一种不同的游戏。地理位置(纬度、经度)将用于放置 3d 建筑模型,并且靠近该区域的移动设备可以登录游戏并以第一人称视角在该 3d 建筑周围走动。
首先,我尝试使用以下公式将地理位置转换为 X、Y、Z 坐标:
float earthRadius = 6378.137f;
float x = earthRadius * Mathf.Cos(lat)*Mathf.Cos(lon);
float y = earthRadius * Mathf.Cos(lat)*Mathf.Sin(lon);
float z = earthRadius * Mathf.Sin(lat);
然后,我尝试找出两个 (x,y,z) 坐标之间的差异,以了解“玩家改变了他/她的位置多少”
所以,每次更新 GPS 位置时,我都会更改玩家位置。
关于那个游戏,我有很多问题(使用指南针和陀螺仪来了解玩家的确切位置,定位玩家和基于 gps 的建筑等)
对于这样的游戏,最好的方法是什么?有没有使用太多gps数据的解决方案。我的意思是,gps 并不总是足够精确。我是否可以在开始时通过 gps 数据定位建筑物和玩家,并使用陀螺仪-加速计-罗盘等在建筑物上正确行走而无需连续获取 gps 数据。
另外,我在将 GPS 位置反映到游戏中的 x-y-z 坐标时遇到了巨大的麻烦。例如,Haversine Formula 可以计算建筑物和玩家之间的距离,但我找不到定义它们位置关系的方法。我的意思是建筑物可以在玩家上方或下方10米的距离?我能做些什么?
感谢您的帮助!
【问题讨论】:
标签: 3d gps unity3d augmented-reality