我有一个米的距离和经度和经度。现在我希望从四个方向(南,北,东和西)的x米上的给定参考点获得纬度和经度。
我怎样才能获得这个价值?
我需要在C#中编写它,但欢迎使用任何伪代码或逻辑指南。
我有一个坐标作为参考点,我想计算北方5米的距离,保持经度不变。所以我想计算距参考点5米处的纬度。对于东西方向的所有3个方向,我必须这样做。我将经度保持为常数。
如果我们可以使用任何公式,请告诉我。
它有多准确?你通常可以认为地球是一个半径为6360公里的球体。在这种情况下,北纬或南纬一度是10000/90公里(这就是仪表的定义方式)。东/西稍微硬一点,东一度是10000/90 km * cos(纬度)。
另一种计算方法是将度数转换为弧度:Pi弧度等于180度。关于弧度的简单点是圆(地球表面)上的长度是半径*弧度。因此,1度* pi / 180 * 6360Km = 110.947Km,其中pi = 3.14。
纬度和经度值分别向南北和东西移动,因此如果运动与其方向一致,则上述计算可以映射到那些,否则必须使用正弦和余弦函数进行映射。
Javascript示例:
function translateCoordinates(distance, Lat,Lng, angle) {
distanceNorth = Math.sin(angle) * distance;
distanceEast = Math.cos(angle) * distance;
earthRadius = 6371000;
newLat = Lat + (distanceNorth / earthRadius) * 180 / Math.PI;
newLon = Lng + (distanceEast / (earthRadius * Math.cos(newLat * 180 / Math.PI))) * 180 / Math.PI;
return [newLat, newLon];
}
所以你可以把它转换成c#