如何从经纬度和经度获得“x”米的纬度和经度?

问题描述 投票:3回答:4

我有一个米的距离和经度和经度。现在我希望从四个方向(南,北,东和西)的x米上的给定参考点获得纬度和经度。

我怎样才能获得这个价值?

我需要在C#中编写它,但欢迎使用任何伪代码或逻辑指南。

Update:

我有一个坐标作为参考点,我想计算北方5米的距离,保持经度不变。所以我想计算距参考点5米处的纬度。对于东西方向的所有3个方向,我必须这样做。我将经度保持为常数。

如果我们可以使用任何公式,请告诉我。

c# latitude-longitude
4个回答
8
投票

它有多准确?你通常可以认为地球是一个半径为6360公里的球体。在这种情况下,北纬或南纬一度是10000/90公里(这就是仪表的定义方式)。东/西稍微硬一点,东一度是10000/90 km * cos(纬度)。


1
投票

来自军械测量的spreadsheet包含可以转换的vb脚本宏中的完整转换。

它应该能够根据学位和时间为您提供新的位置。

重新格式化纬度和经度坐标:度,分和秒;十进制度;和度和小数分钟格式。


0
投票

另一种计算方法是将度数转换为弧度:Pi弧度等于180度。关于弧度的简单点是圆(地球表面)上的长度是半径*弧度。因此,1度* pi / 180 * 6360Km = 110.947Km,其中pi = 3.14。

纬度和经度值分别向南北和东西移动,因此如果运动与其方向一致,则上述计算可以映射到那些,否则必须使用正弦和余弦函数进行映射。


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#

© www.soinside.com 2019 - 2024. All rights reserved.