我需要根据旧的经度和纬度来计算经度和纬度,距离和指向该点的方向。
从此链接:http://www.movable-type.co.uk/scripts/latlong.html
我得到了这些公式:
newLatitude = Math.Asin(Math.Sin(oldLatitude) * Math.Cos(distanceTravelled / earthRadius) + Math.Cos(oldLatitude) * Math.Sin(distanceTravelled / earthRadius) * Math.Cos(currentDirection));
newLongitude = oldLongitude + Math.Atan2(Math.Sin(currentDirection) * Math.Sin(distanceTravelled / earthRadius) * Math.Cos(oldLatitude), Math.Cos(distanceTravelled / earthRadius) - Math.Sin(oldLatitude) * Math.Sin(oldLatitude));
我有加速,例如0.1米/秒2
行走时间:从当前时间 - 开始时间计算。
然后我计算行进的距离:
distanceTravelled = distanceTravelled/1000;
我也有度数的方向移动:例如90度。 (东)
但我在新的Latitude see-image中收到错误:
我必须在Radian中输入方向吗?
KM的距离而不是米?
请帮助我获得正确的纬度?
答案 0 :(得分:1)
我找到了解决方案。 我在上面的公式中使用纬度和经度的度数和小数。 我们必须使用Radians
将纬度,经度和方向转换为Radians:
oldLatitude = Math.PI * oldLatitude / 180;
oldLongitude = Math.PI * oldLongitude / 180;
currentDirection = Math.PI * currentDirection / 180.0;
然后再将新的经度和纬度从Radians转换为Degree
newLatitude = 180 * newLatitude / Math.PI;
newLongitude = 180 * newLongitude / Math.PI;