我有一个当前位置:纬度和经度值以度(点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#。
感谢。
答案 0 :(得分:0)
我已将此作为评论,但我没有所需的代表。
您正在寻找的是一个大地测量库,它为您提供“大地测量逆”和“大地测量直接”计算。我不知道自己,但尝试搜索“c#geodesy library”
前者给出了两个地理坐标之间的方位和距离,后者给出了一个给定方位的新坐标和距离第一个坐标的距离。
所以对你的问题:
PointA
和PointB
NewCoord
。根据第一原理对这些计算进行编码将是相当大的,并且需要(可能)WGS84椭球的参数。然而,这是起点。
希望这有帮助。