android中的无效纬度和经度

Posted

技术标签:

【中文标题】android中的无效纬度和经度【英文标题】:Invalid latitude and longitude in android 【发布时间】:2013-03-17 10:00:04 【问题描述】:

我测试了下面的代码 sn-p。我突然得到一个奇怪的位置 (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。你为什么这样做?调用reset() 时您期望的值是多少? 由 android 位置服务提供的位置具有准确度集 (getAccuracy())。如果您创建自己的位置对象或 reset() 它,它将为 0。

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

如果您愿意,您可以使用坐标范围之外的特殊值来初始化纬度、经度。但即便如此,您也无法避免其他人的错误。

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

【讨论】:

以上是关于android中的无效纬度和经度的主要内容,如果未能解决你的问题,请参考以下文章

android纬度/经度格式

如何从android中的纬度和经度获取3位国家代码[重复]

Android:如何获取经度和纬度的当前位置?

从php中的地址获取纬度经度

Android:如何在给定角度转换纬度和经度?

android -LocationManager 为纬度和经度返回 0.0