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

C# 在非方向感知设备上创建指南针,c#,gps,windows-mobile,windows-mobile-6.5,C#,Gps,Windows Mobile,Windows Mobile 6.5,我需要为我们正在使用的设备开发一个指南针。该设备在方向上不感知(没有陀螺仪),但有一个GPS模块。如何制作一个带有指针的罗盘,从起始坐标(可能是它们的当前位置)指向结束坐标 我目前的想法是: 尽可能快地轮询GPS传感器上的坐标 记录PDOP在适当范围内的坐标(可能小于2.0) 根据它们行走时的坐标变化确定它们面对的方向 但我对此有一些问题: 首先,部队必须四处移动,以了解他们在哪里 这似乎不是最准确的,也就是说,你用多少个过去的点来确定方向变化 我不确定这是否是一个可行的解决方案。关于这一点,我

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

我目前的想法是:

  • 尽可能快地轮询GPS传感器上的坐标
  • 记录PDOP在适当范围内的坐标(可能小于2.0)
  • 根据它们行走时的坐标变化确定它们面对的方向
  • 但我对此有一些问题:

  • 首先,部队必须四处移动,以了解他们在哪里
  • 这似乎不是最准确的,也就是说,你用多少个过去的点来确定方向变化
  • 我不确定这是否是一个可行的解决方案。关于这一点,我能读到一些实现理论吗
  • 有更好的办法解决我的问题吗?该项目的范围涉及从“当前位置”到某个油田的某个地理标记项目


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

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

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


    我认为使用地图并用某种线条显示你在地图上的最后移动(尽管地图可能会显示与用户方向相反的方向)会更好地定位目标,如果你向目标显示当前位置的向量。至少如果向量和运动线对齐,你就会知道你在正确的方向上行驶。

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

    下面是一个例子: 让D代表行驶方向。假设在这个例子中是100度。 让T代表他们应该到达目标的方向。假设在这个例子中是90度。T-D=-10,所以在屏幕上画一个箭头,指向与垂直方向成-10度。请记住,如果他们按照我前面提到的说明进行操作,则“直接向上”与“D”相同。这意味着箭头指向D-10,即90度,这是他们应该走的方向

    现在你又遇到了另一个问题:如果它们停止移动,你就无法分辨设备指向的方向。在这种情况下,隐藏箭头并让用户知道,一旦GPS再次开始移动,它将返回

    最后要记住的是,纬度的1度变化比经度的1度变化代表更多的距离,因此确定标题并不像你想象的那么简单。以下是一篇文章的链接,该文章告诉您如何基于2个GPS点计算标题:

    祝你好运


    编辑:大多数GPS设备为您提供行驶方向,但除非您使用的算法与GPS计算行驶方向时使用的算法相同,可能存在差异,这会导致箭头有点偏。

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

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


    全球定位系统有一个“路线”阿曲布他。只要使用它,您就准备好了。

    问题的答案取决于您的问题域/设计决策;例如,如果这是一个汽车导航系统,每秒钟进行一次轮询就可以给出合理的准确度。为了让步行者在雾中安全地离开高山,请雇佣一名优秀的滑雪者,因为GPS通常位于行驶方向,但可能会随机偏离实际路线…@RowlandShaw我会将此编辑到帖子中,但这将用于油田工作。所以,如果我想从我现在的位置到某个有地理坐标的管道,我应该往哪个方向走?更大的问题是GPS的抖动。GPS的精度取决于设备中时钟的质量。根据硬件和驱动程序,我还没有遇到过精度超过30米的智能手机。你可以通过重复轮询和一个巧妙的算法来消除不安,并得到一个好的平均位置,从而伪造一个更高的准确度。在我看来,你最好的选择是买一个带陀螺的设备,因为我们所说的代码量要比新硬件的成本高出1000美元。@KeithPay