【发布时间】:2014-09-15 16:32:13
【问题描述】:
在 GPS_PROVIDER 中使用 location.getSpeed() 工作正常,并获得当前速度。但是在 NETWORK_PROVIDER 中它总是显示速度 0。我只是在设备而不是模拟器中测试。
【问题讨论】:
标签: android locationmanager locationlistener
在 GPS_PROVIDER 中使用 location.getSpeed() 工作正常,并获得当前速度。但是在 NETWORK_PROVIDER 中它总是显示速度 0。我只是在设备而不是模拟器中测试。
【问题讨论】:
标签: android locationmanager locationlistener
Gps 提供商提供 5-15 米内的位置精度,因此当您调用方法 location.getSpeed() 时,它会给出正确的位置,而网络提供商没有给出准确的位置,它会给出 100 米内的位置,所以当您调用 location.getSpeed 时() 那么它不知道你在 100 米之间的准确位置。
【讨论】:
在 NETWORK_PROVIDER hasSpeed() 中返回 false,因此您的 location.getSpeed()=0。 您只能将 getspeed() 用于 GPS_PROVIDER。
【讨论】:
NETWORK_PROVIDER根据您的网络提供您的位置,如果您在移动网络上,您连接到哪个蜂窝塔,如果您使用wifi,则连接到路由器,所以如果您的NETWORK_PROVIDER的蜂窝塔或路由器的位置没有改变它给出了 0
【讨论】:
参考这里:Determining the speed of a vehicle using GPS in android
AFAIK,可以/应该仅使用 GPS_PROVIDER 计算速度。网络提供商数据取决于运营商网络、信号塔、信号强度等一些参数。因此,它不是确定速度的正确方法。此外,由于它基于静态塔,因此它将返回相同的纬度和更长的距离。
与 GPS Provider 相比,NETWORK Provider 的 lat long 精度非常低,不够,不应用于计算速度。
【讨论】: