当我到达目的地lat和lon时,android的distanceTo()和distanceBetween()函数会给出结果。但是我需要覆盖纬度和经度可能不会改变的情况(例如,如果我走在高层建筑的街道上,进入建筑物或通过多转弯走很短的距离)。对于那些条件如何计算android中的距离?
当我在stackoverflow中搜索其他答案时,我经历了here。
我尝试了以下answer。代码很好而且很好,但是当我试图通过该代码计算距离时,即使我不走路,它也会给出一个恒定的值。
请帮我计算两点之间的距离
答案 0 :(得分:5)
当你进入建筑物时,你有GPS纬度/长度,但之后它不会改变,因为没有GPS覆盖。所以,问题是如何处理这样一个案件,只有最后一个位置。我会用这种方式处理这个有趣的问题:
也可以使用WiFi网络信息查找位置(不仅仅是GPS)。
使用传感器。您有方向和加速度传感器。我记得有些手机具有计数步数(我在没有GPS的SonyEricsson上有这个功能)。
加速度传感器可以为您提供有关人员移动的信息,并帮助您计算步数(您需要采取一些平均步距值估算)。你可以很容易地得出结论,如果有人在电梯里,如果他正在上升或下降,并粗略估计楼层数。
方向传感器可以为您提供有关运动变化方向的信息(转过拐角处)。
基于GSM信号强度的位置。来自android.telephony
的NeighboringCellInfo为您提供有关您周围的小区的RSSI(接收信号强度指示)的信息,但是为了准确计算基于三角测量的位置(大约50米精度),您需要基站的准确位置(您不能没有运营商的支持)。
据了解,这种估计可能有多么不准确,但我认为没有其他办法。
无论如何,探索/开发很多乐趣的东西。