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中的无效纬度和经度的主要内容,如果未能解决你的问题,请参考以下文章