C# 如何获得“;x”;米从参考纬度和经度?

C# 如何获得“;x”;米从参考纬度和经度?,c#,latitude-longitude,C#,Latitude Longitude,我有一个以米为单位的距离,参考纬度和经度。现在我想要从给定的参考点x米的四个方向(南、北、东、西)的纬度和经度 我怎样才能得到这个值 我需要用C#来写这个,但是任何伪代码或逻辑指导都是受欢迎的 更新: 我有一个坐标作为参考点,我想计算北面5米的距离,保持经度不变。所以我想计算距离参考点5米处的纬度。在东西方向的所有三个方向上,我都必须这样做,我保持经度不变 请让我知道我们是否可以使用任何公式。它必须精确到什么程度?你通常可以假设地球是一个半径为6360公里的球体。在这种情况下,北纬或南纬一度等于

我有一个以米为单位的距离,参考纬度和经度。现在我想要从给定的参考点x米的四个方向(南、北、东、西)的纬度和经度

我怎样才能得到这个值

我需要用C#来写这个,但是任何伪代码或逻辑指导都是受欢迎的

更新: 我有一个坐标作为参考点,我想计算北面5米的距离,保持经度不变。所以我想计算距离参考点5米处的纬度。在东西方向的所有三个方向上,我都必须这样做,我保持经度不变


请让我知道我们是否可以使用任何公式。它必须精确到什么程度?你通常可以假设地球是一个半径为6360公里的球体。在这种情况下,北纬或南纬一度等于10000/90公里(这就是米的定义)。东/西只是稍微难一点,东经一度是10000/90公里*cos(纬度)。

这项来自《军械测量》的内容包含了vb脚本宏中可以转换的完整转换

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

重新设置纬度和经度的格式 坐标:度,分 &秒;十进制度数;和 度和十进制分钟格式


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

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

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#

  • 算法:
  • Java示例-

检查此站点:。有一种计算地球上两点之间距离的方法,所以它应该很容易被你们的问题所采用。上次我对此提出了4或5个申请。至少我使用Drupal的数据库来处理lati long,另一个很好的方法是GoogleMapAPI。我知道这并不重要,但最好的方法是谷歌api或使用免费的drupal数据库。与100公里不同,我将使用111公里进行两种计算(参见)中间方向(NW、SE、SW等)如何?@TheDarkLord:分解为基本方向。西北方向10公里是
10/平方米(2)
10/平方米(2)10/平方米(2)10/平方米(2)2公里。哦,对了,愚蠢的问题。。。至于西面位移,它和东面一样,只是用“-”号,对吗?意思是-10000/90公里*cos(纬度)