即使我呆在同一个地方,纬度和经度也在发生变化

时间:2019-01-01 21:25:35

标签: android geolocation

 @Override
public void onLocationChanged(Location location) {
    Log.d(TAG, "Firing onLocationChanged..............................................");
    mUpdatedLocation = location;
    mLastUpdateTime = DateFormat.getTimeInstance().format(new Date());
    updateUI();
}

private void updateUI() {
    Log.d(TAG, "UI update initiated .............");
    if (null != mUpdatedLocation && mUpdatedLocation.getAccuracy()>10) {
        String lat = String.valueOf(mUpdatedLocation.getLatitude());
        String lng = String.valueOf(mUpdatedLocation.getLongitude());
        tvUpdatedlocation.setText("\n Updated At Time: " + mLastUpdateTime + "\n" +
                "Latitude: " + lat + "\n" +
                "Longitude: " + lng + "\n" +
                "Accuracy: " + mUpdatedLocation.getAccuracy() + "\n" +
                "Distance: " + mUpdatedLocation.distanceTo(mLastLocation) + "m\n" +
                "Provider: " + mUpdatedLocation.getProvider());
    } else {
        Log.d(TAG, "location is null ...............");
    }
}

我想比较两个位置,并以米为单位找到它们之间的距离。

目标位置(LOC A)是静态的,LOC B正在移动。 但是LOC B的纬度和经度正在频繁变化。

即使我在同一位置,位置也会改变。

任何帮助将不胜感激...

1 个答案:

答案 0 :(得分:2)

因为位置不是魔术。它适用于无线信号,GPS信号等。这些变化,有噪声,有参考价值。计算不准确。注意准确性-X米的准确性仅表示您有66%的机会在该位置的X米以内。是的,您的位置将不断变化。您必须先决定要忽略多少变更,然后再决定是否真正搬家。

还请注意,您偶尔会得到真正关闭的阅读信息。例如,如果您整夜运行GPS,您将获得一些读数,这些数据表明您的距离是1英里。您还必须过滤掉这些尖峰,或者处理它们似乎会瞬移的事实。