【问题标题】:Invalid latitude and longitude in androidandroid中的无效纬度和经度
【发布时间】: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经纬度吗?

【问题讨论】:

    标签: geolocation gps location android-location


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 2013-12-09
      • 2018-05-25
      • 1970-01-01
      相关资源
      最近更新 更多