计算附近另一部Android手机的相对位置

时间:2012-03-26 07:08:42

标签: android gps location relative

我正在试图找出确定另一款Android手机相对位置的最佳方法(它的位置与我的相比)。这些手机将处于WifiP2P范围内,因此它们可以相互通信。如果可能的话,我希望它离线。我想过几个可能的解决方案:

解决方案1:

在两台设备中使用GPS,并进行比较。

问题:

  • 我可以离线使用GPS吗?
  • 如果附近区域有两台设备,GPS错误是否相同(或类似)?
  • 这会给室内带来问题吗?

解决方案2:

根据WifiP2P信号强度计算我的相对位置。

问题:

  • 如何计算这个相对位置? (考虑三角测量之类的东西,但移动手机以获得3个或更多不同的信号)
  • WifiP2P是否有getRssi()功能(我还没找到)?
  • 我可能还需要检查其他设备移动。
  • 我读过用加速度计计算你的位置变化不是很准确。

有关此问题或任何其他可能解决方案的任何想法?

如果离线没有“好”解决方案,您会在网上提出什么建议?网络位置提供商是否会在附近的设备上出现相同(或类似)的错误?

3 个答案:

答案 0 :(得分:2)

如果您有两个适当的GPS接收器跟踪8个或更多卫星,那么在本地区域看到的GPS误差实际上几乎完全一样。这个想法是由于大气条件,每个收到的GPS卫星信号都有与之相关的错误,所以如果你知道一个位置的接收器设置,你可以计算出它们应该给出已知位置的信号时序差异,并将它们作为校正发送到移动GPS接收器,以便在50cm左右的范围内进行精确的移动定位。 (水平,1米左右垂直)

这是RTCM信标用于沿海GPS校正的方式。 - 但话虽如此,手机GPS芯片并没有获得那么多的卫星数据,因此往往取决于有限的卫星接收,由网络校正数据以及网络级定位提升,以帮助计算种子......这不是如此可重复的电话到手机,并取决于每部手机看到的内容,以及他们使用的网络。

WIFI信号强度将随着信号反射和区域内的干扰而变化,而不是实际的点对点距离。

我认为你有一个非常难以解决的问题。玩得开心!

答案 1 :(得分:1)

您可以尝试使用蓝牙。 您可以测量周围设备的RSSI。 RSSI和距离之间的理论关系如下:RSSI [dbm] = - (10n log10(d) - A)其中d是距离,A是偏离BLE设备测量的RSSI 1米点的偏移量。 只需谷歌“RSSI [dbm] = - (10n log10(d) - A)”,你会发现一些有关它的消息来源。 与其他设备保持距离,您可以使用多维缩放算法来获得相对位置。这是图书馆: http://algo.uni-konstanz.de/software/mdsj/

答案 2 :(得分:0)

另一个想法(我可能会尝试实施,我自己)将是让手机使用声音(超声波或其他东西)来计算另一个的距离。通过适当协调的几部手机,您理论上可以找出每个手机相对于其他手机的位置。