如何创建指针始终指向某个GPS位置的指南针? (在Android中)

时间:2011-07-22 09:26:36

标签: android math gps compass-geolocation

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

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

任何人都可以给我一些指导如何开始或者有一个如何做到这一点的例子吗?

2 个答案:

答案 0 :(得分:3)

要实现这一目标,您需要了解以下几点:

  • 你想指的地方。
  • 你在哪里。
  • 您正在使用的地图投影(米,度等)

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

使用此信息,您可以使用三角法计算您与标记位置之间的角度,并使用此方法在地图上绘制方向箭头,或使用方位数据告诉您要转向的方式。

答案 1 :(得分:1)

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

你有

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

你现在可以

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

或者如果你想要一条较短的线(或箭头)

  • “bearingTo()”(再次来自Location类)为您提供指向的方向。绘制一条线(或箭头)并将其旋转到此方向