在非方向感知设备上创建指南针

本文关键字:创建 指南针 感知 方向 方向感 | 更新日期: 2023-09-27 18:30:46

我需要为我们正在使用的设备开发指南针。该设备在方向上是无方向的(没有陀螺仪),但有一个GPS模块。如何用指针制作指南针,从起始坐标(可能是它们的当前位置)引向终点坐标?

我目前的想法是:

    尽可能快地在
  1. GPS 传感器上轮询坐标。
  2. 记录 PDOP 在可观范围内(可能小于 2.0)的坐标。
  3. 根据他们行走的坐标变化确定他们面对的方向。

不过,我对此有一些问题:

  1. 首先,必须四处移动设备以了解它们的位置。
  2. 似乎不是最准确的,即您使用多少过去的点来确定方向变化?
  3. 我不确定这是否是一个可行的解决方案。我能读到一些实现理论吗?

有没有更好的方法来解决我的问题?该项目的范围涉及从"当前位置"到油田中的某个地理标记项目。

在VS2008上使用Windows Mobile 6.5设备-C#。

在非方向感知设备上创建指南针

我认为您遇到的问题是人们使用指南针的方式与您通过"越来越近"的技术所实现的目标不符。当你看指南针时,你倾向于旋转以获得方向感,这在你的情况下会失败,无论你对距离有多聪明。事实上,手机的方向将无关紧要,因为它不知道能够调整任何指南针。

我认为您最好放弃指南针的想法并开发一个与您建议的"越来越近"方法一起使用的界面。也许到目标显示器的简单距离会更好?我认为展示一些没有做它应该做的事情的东西可能会适得其反。如果它是卫星导航,在移动的车辆中,那么它可能会起作用,因为你不能在现场那么容易地旋转,而且它很可能会在你旋转之前自我更新。

给它一些进一步的提示,我认为使用地图并用某种线显示您的最后动作(尽管地图可能会相对于用户方向颠倒显示)会更好地定位目标,如果您向目标显示当前位置的矢量。至少如果矢量和你的运动线对齐,你就会知道你正朝着正确的方向行进。

如果我站在你的立场上,我会在屏幕上显示一个通知,告诉用户始终保持设备的顶部指向行进方向。当它们移动时,使用它们的当前位置和最后一个已知位置计算它们前进的方向。然后根据当前位置和目标位置计算它们应该移动的方向。然后计算他们的行进方向和他们应该行进的方向之间的差异,并使用该差异指向屏幕上的箭头,显示他们相对于当前方向应该走的方向。

下面是一个示例:设 D 表示行进方向。假设在本例中为 100 度。让 T 表示它们到达目标的方向。假设在本例中为 90 度。T - D = -10,因此在屏幕上绘制一个箭头,从直线向上指向 -10 度。请记住,如果他们按照我之前提到的说明进行操作,则直接与 D 相同。这意味着箭头指向D-10,即90度,这是他们应该走的方向。

现在您有另一个问题:如果它们停止移动,您将不再有任何方法可以分辨设备指向哪个方向。在这种情况下,请隐藏箭头,并让用户知道一旦 GPS 再次开始移动,它将返回。

最后要记住的是,纬度的 1 度变化比经度的 1 度变化代表更多的距离,因此确定标题并不像您想象的那么简单。这是一篇文章的链接,告诉您如何根据 2 个 GPS 点计算航向:http://www.movable-type.co.uk/scripts/latlong.html

祝你好运!

编辑:大多数GPS设备都会为您提供行进方向,但除非您使用与GPS在计算它们应该前进的方向时使用的相同算法,否则可能会出现差异,从而导致箭头有点偏离。

在您的情况下,您只能创建一个显示您移动的地理方向的工具。当用户将设备指向他移动的方向时,这与指南针相同(或更好)。

这不等于指南针,但在某些情况下甚至更有用:例如在车辆内部,使用磁场的指南针不能很好地工作。

GPS有一个"路线"属性。只需使用它,您就可以准备好了。