2

当我到达目的地 lat 和 lon 时,android 的 distanceTo() 和 distanceBetween() 函数会给出结果。但是我需要涵盖经纬度可能不会改变的情况(例如,如果我走在周围有高建筑物的街道上,进入建筑物或通过更多转弯步行短距离)。对于那些条件如何在android中计算距离?

当我通过 stackoverflow 搜索其他答案时,我经历了here

我尝试了以下答案。该代码很好,但是当我尝试通过该代码计算距离时,即使我不走路,它也会给出一个恒定值。

请帮我计算两点之间的距离

4

1 回答 1

6

当您进入建筑物时,您有 GPS 纬度/经度,但之后它不会改变,因为没有 GPS 覆盖。所以,问题是如何处理这种情况,只有最后一个位置。我会以这种方式处理这个有趣的问题:

  • 也可以使用 WiFi 网络信息进行定位(不仅仅是 GPS)。

  • 使用传感器。您有方向和加速器传感器。我记得有些手机具有步数计数功能(我在没有 GPS 的索尼爱立信上有)。

  • 如果有人在移动,加速传感器可能会为您提供信息,并帮助您计算步数(您需要进行一些平均步距值估计)。您可以很容易地推断出一个人是否在电梯中,以及他是在上还是下,并粗略估计楼层数。

  • 方向传感器可能会为您提供有关运动方向变化(转弯)的信息。

  • 基于 GSM 信号强度的位置。NeighboringCellInfo fromandroid.telephony为您提供有关您周围小区的 RSSI(接收信号强度指示)的信息,但要根据三角测量准确计算位置(大约 50 m 精度),您需要基站的精确位置(如果没有来自操作员)。

可以理解,这种估计可能有多不准确,但我看不到其他方法。

无论如何,探索/开发很多乐趣的东西。

于 2011-05-25T07:55:12.513 回答