【问题标题】:How to create a compass where the needle always point to a certain GPS position? (in Android)如何创建一个指针始终指向某个 GPS 位置的指南针? (在安卓中)
【发布时间】:2011-07-22 09:26:36
【问题描述】:

我想在 Android 中编写一个应用程序,您可以在其中看到一个始终指向某个 GPS 位置的指针。因此,当您转动手机或开车时,指针仍会指向 GPS 位置。

但我不知道如何使用 gps 位置和指南针传感器数据进行计算。

谁能给我一些指导如何开始,或者有一个如何做到这一点的例子?

【问题讨论】:

    标签: android math gps compass-geolocation


    【解决方案1】:

    要实现这一点,您需要了解几件事:

    • 您要指向的位置。
    • 你在哪里。
    • 您使用的是什么地图投影(米、度等)

    使用 android LocationManager 并注册位置更新。当这些更新到达时,您需要提取位置和方位(也可以使用指南针作为方位)并将它们转换为您正在使用的地图格式。通常这将是 Google 地图球形墨卡托变体。

    有了这些信息,您可以使用三角函数来计算您与标记位置之间的角度,并使用它在地图上绘制方向箭头,或使用方位数据告诉您转向哪个方向。

    【讨论】:

      【解决方案2】:

      与上述答案的起点相同,但不需要三角计算。只是调用现有方法。

      你有

      • onLocationChanged 中您的实际位置(Location 类的方法)
      • 要指向的坐标(纬度/经度)

      你现在可以

      • 在 googleMaps 上创建一个叠加层,并从您的位置到点画一条线。

      或者如果你想要更短的线(或箭头)

      • “bearingTo()”(同样来自 Location 类)为您提供指向的方向。画一条线(或箭头)并将其旋转到这个方向

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-02
        • 1970-01-01
        • 2011-05-07
        • 2016-05-15
        • 2023-04-08
        相关资源
        最近更新 更多