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

时间:2013-09-10 16:06:48

标签: c# gps windows-mobile windows-mobile-6.5

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

我目前的想法是:

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

    1. 首先,必须移动单位以了解它们的位置。
    2. 似乎不是最准确的,即你用多少过去的点来确定方向变化?
    3. 我不确定这是否是一个可行的解决方案。我能读到一些实施理论吗?
    4. 有没有更好的方法来解决我的问题?该项目的范围涉及从“当前位置”转移到油田中的某个地理标记项目。

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

3 个答案:

答案 0 :(得分:1)

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

我认为你最好放弃指南针的想法并开发一个与你建议的“越来越近”的方法配合使用的界面。也许与目标显示器的简单距离会更好?我认为展示一些不能做它应该做的事情可能会适得其反。如果它是静止导航,在移动的车辆内,那么也许它可能会起作用,因为你不能轻易地在现场旋转它并且它可能在你旋转之前更新自己。

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

答案 1 :(得分:0)

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

这是一个例子: 设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计算其应该朝向的相同算法,否则可能会出现导致箭头变为箭头的差异很少。

答案 2 :(得分:0)

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

这不等于指南针,但在某些情况下甚至更有用:例如在使用磁场的指南针无法正常工作的车辆内。

GPS具有“课程”属性。只需使用它,就可以了。