知道起点,速度,时间跨度和航线的第二点

时间:2012-04-29 08:36:59

标签: c# math geolocation coordinates latitude-longitude

我有一个当前位置:纬度和经度值以度(点A)表示,最终位置(点B)相同。 我需要计算两点之间的路线(也以度为单位),然后计算给定速度(以km / s为单位)和时间跨度(以秒为单位)来计算新位置。

示例(伪代码):

PointA.Lat = x.xxxx;
PointA.Lng = x.xxxx;
PointB.Lat = x.xxxx;
PointB.Lng = x.xxxx;
Speed = 3;
TimeSpan = 0.1;
Course = GetCourse(PointA, PointB);

NewPoint = CalculatePoint(PointA, Course, Speed, TimeSpan);

我想过使用GeoCoordinate类,但是我不确定我必须自己实现所有计算的广告。 (我没有GPS - 这只是一个模拟,那些都是假点)。

有人可以帮我解决数学问题或某些可以免费使用的软件包吗?很容易被我的代码插入?

BTW我正在使用C#。

感谢。

1 个答案:

答案 0 :(得分:0)

我已将此作为评论,但我没有所需的代表。

您正在寻找的是一个大地测量库,它为您提供“大地测量逆”和“大地测量直接”计算。我不知道自己,但尝试搜索“c#geodesy library”

前者给出了两个地理坐标之间的方位和距离,后者给出了一个给定方位的新坐标和距离第一个坐标的距离。

所以对你的问题:

  1. 使用反向获取PointAPointB
  2. 之间的承载
  3. 从时间和速度计算目的地距离
  4. 将轴承和距离插入直接,以获得所需的目的地NewCoord
  5. 根据第一原理对这些计算进行编码将是相当大的,并且需要(可能)WGS84椭球的参数。然而,这是起点。

    希望这有帮助。