我有一个以米为单位的距离和经度和经度。现在我希望从四个方向(南,北,东和西)的x米上的给定参考点获得纬度和经度。
如何获得此值?
我需要在C#中编写它,但欢迎使用任何伪代码或逻辑指南。
我有一个坐标作为参考点,我想要计算北方5米的距离,保持经度不变。所以我想计算距参考点5米处的纬度。对于东西方向的所有3个方向,我必须这样做。我将经度保持为常数。
如果我们可以使用任何公式,请告诉我。
答案 0 :(得分:8)
它有多准确?你通常可以认为地球是一个半径为6360公里的球体。在这种情况下,北纬或南纬一度是10000/90公里(这就是仪表的定义方式)。东/西稍微硬一点,东一度是10000/90 km * cos(纬度)。
答案 1 :(得分:1)
来自军械测量的此spreadsheet包含可以转换的vb脚本宏中的完整转换。
它应该能够根据学位和时间为您提供新的位置。
重新格式化纬度和经度 坐标:度,分钟 &安培;秒;十进制度;和 学位与学位十进制分钟格式。
答案 2 :(得分:0)
另一种计算方法是将度数转换为弧度:Pi弧度等于180度。关于弧度的简单点是圆(地球表面)上的长度是半径*弧度。因此,1度* pi / 180 * 6360Km = 110.947Km,其中pi = 3.14。
纬度和经度值分别向南北和东西移动,因此上面的计算可以映射到运动与其方向一致的情况,否则必须使用正弦函数和余弦函数进行映射。
答案 3 :(得分:0)
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#