【问题标题】:How to get gps data from mavic 2 using DJI SDK for Windows?如何使用 DJI SDK for Windows 从 mavic 2 获取 gps 数据?
【发布时间】:2019-12-07 09:54:55
【问题描述】:

我使用 windows sdk。 我正在尝试使用以下方法获取 gps 数据:

var flightControllerHandler = _djiManagerInstance.ComponentManager.GetFlightControllerHandler(ProductIndex, ComponentIndex);
flightControllerHandler.AircraftLocationChanged -= QuadcopterOnAircraftLocationChanged;
private void QuadcopterOnAircraftLocationChanged(object sender, LocationCoordinate2D? value)
{
    System.Diagnostics.Debug.WriteLine($"{System.DateTime.Now} LocationCoordinate2D (latitude, longitude) {value.Value.latitude} {value.Value.longitude}"); 
}

因此,我得到了难以理解的响应值:

12/7/2019 12:26:28 PM LocationCoordinate2D (latitude, longitude) -2.3595119079203E-11 ,-1.12286496566529E-11
12/7/2019 12:26:28 PM LocationCoordinate2D (latitude, longitude) -1.14848682613655E-11 ,2.82582976953522E-11
12/7/2019 12:26:28 PM LocationCoordinate2D (latitude, longitude) 7.99402048749395E-12 ,1.48245993485702E-11
12/7/2019 12:26:28 PM LocationCoordinate2D (latitude, longitude) 2.68203361390684E-11 ,-5.64203826991632E-13
12/7/2019 12:26:28 PM LocationCoordinate2D (latitude, longitude) 2.61363893300918E-11 ,-7.92238385763886E-12

我能否以某种方式将此数据转换为 GPS 坐标或获取真正的 GPS 坐标?

【问题讨论】:

  • 我非常了解 GPS。这些值看起来像时钟调整。看起来应用程序从 GPS NAV(导航)数据中提取了错误的值。 GPS 会随时间发送 NAV 数据,但程序从 NAV 中获取了错误的数字。为什么要减去值? “-=”。结果是两个值之间的差异。 GPS 非常准确(小于 1 米)。所以结果是两个非常准确的数字之间的差异。
  • 每行按空格分割并从数组中获取一个数组,您可以将其转换为您的格式
  • 我更新了问题。为从 DJI Windows SDK 接收数据的方法添加了代码。我没有按原样对这张印刷品进行任何操作。

标签: c# uwp gps dji-sdk


【解决方案1】:

好吧,也许这个问题有点过期了,但以防万一将来有人像我一样碰到这个。

LocationCoordinate2D 中的结果是地球在地理坐标系中的纬度/经度:Wiki link。你得到它们作为双打和[度]单位。

如果你在没有指定起始位置的情况下运行模拟器,你从 0,0 开始,不移动无人机会导致像你展示的那样的噪音输出。

知道了这一点,您应该能够将其转换为您需要的任何格式。

【讨论】:

  • 谢谢,我们注意到无人机总是从 0,0 开始。我们如何将获得的值转换为gps坐标?
  • 这就是我目前所发现的,因为到目前为止我一直在玩模拟器。这应该是以某种方式获取家庭位置坐标的问题,但还不确定如何提取它。但如果这是已知的,它只是将它们加在一起。如果我知道怎么做,我会在这里告诉你。
  • 好吧,看来如果你在运行模拟器,你需要设置起始位置,这将被使用。它在模拟器初始化设置中设置。如果您实际驾驶飞机,则有 2 个案例。如果无人机看到足够多的 GPS 卫星,它会根据它自动设置家庭位置。如果信号不好,可以使用 SetHomeLocationUsingAircraftCurrentLocationAsync 或 SetHomeLocationAsync 设置起始位置。希望这有帮助!
  • 之后接收到的坐标格式会改变吗?
  • 不,它仍然显示相同的纬度和经度以度为单位。您可以将其转换为您需要的任何格式。例如:en.wikipedia.org/wiki/Geographic_coordinate_conversion
猜你喜欢
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多