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

问题描述 投票:1回答:1

我有一个当前位置:纬度和经度值以度(点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 - 这只是一个模拟,那些是假点)。

有人可以帮助我使用数学或一些可以免费实现并且可以轻松集成到我的代码中的软件包吗?

顺便说一下,我正在使用C#。

谢谢。

c# math geolocation coordinates latitude-longitude
1个回答
0
投票

我已经发表了评论,但我没有所需的代表。

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

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

那么对于你的问题:

  1. 使用逆来得到PointAPointB之间的关系
  2. 计算距时间和速度的目的地距离,
  3. 将轴承和距离插入直接,以获得所需的目的地NewCoord

根据第一原理编码这些计算将是相当大的并且需要(可能)WGS84椭球的参数。然而,这是起点。

希望这可以帮助。

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