android中的纬度和经度无效

时间:2013-03-27 10:40:29

标签: geolocation gps location android-location

我测试下面的代码段。我突然得到一个奇怪的位置(0,0)作为纬度和经度扰乱了我的距离计算。

if (loc != null) {
                double currentLatitude = loc.getLatitude();
                double currentLongitude = loc.getLongitude();

                if (first_time) {
                    loc.reset();
                    first_time = false;
                }

                synchronized (testObject) {
                    … do some work
                    previousLat = currentLatitude;
                    previousLon = currentLongitude;
                }
            }

我想知道在什么情况下纬度和经度变为0.我也想知道我的代码在哪里错误,因为我得到0纬度和经度。 location.reset()会产生0纬度和经度吗?

1 个答案:

答案 0 :(得分:2)

当你重置它时,它当然是0。你为什么那样做?调用reset()时你会期望哪个值? 由android位置服务提供的位置具有精确度设置(getAccuracy())。如果您创建自己的位置对象或重置()它,它将为0。

我之前写的更多信息,说明为什么我总是在计算之前检查有效性:
lat,lon 0,0理论上是一个有效的位置。但在我多年的GPS体验中,我给你tipp:忽略所有位置和坐标(0,0) 这对现实世界的行为没有影响,因为设备不能精确定位在0,0(精确到厘米),即使它可以,也不会超过一秒。

如果你想要你可以初始化你的lat,lon,其特殊值超出了coord范围。但即便如此,你也不能避免其他人的错误。

一般检查位置是否有效,如果你有一个有效的标志,它应该存在于android上。看看水平准确度值。阅读文件如何区分无效的位置。