Android - LocationManager的位置与GoogleMaps不同

nro*_*fis 2 android locationmanager google-maps-android-api-2

我使用以下代码通过'LocationManager'创建了一个位置监听器:

mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 100, 100, mListenerNetwork);
Run Code Online (Sandbox Code Playgroud)

和听众:

LocationListener mListenerNetwork = new LocationListener() {
    public void onLocationChanged(Location location) {
        // New Location by LocationManager
    }

    public void onProviderDisabled(String provider) { }

    public void onProviderEnabled(String provider) { }

    public void onStatusChanged(String provider, int status, Bundle extras)  { }
}
Run Code Online (Sandbox Code Playgroud)

我有一个谷歌地图API的听众:

getMap().setOnMyLocationChangeListener(this);
Run Code Online (Sandbox Code Playgroud)

和听众:

public void onMyLocationChange(Location location) {
    // New Location by GoogleMaps       
}
Run Code Online (Sandbox Code Playgroud)

当我调试应用程序时,我注意到监听器中的位置是不同的!更重要的是,位置的准确性是非常不同的.Google地图的准确度是LocationManager准确度的一半(越少越好).
为什么地点如此不同?

Mac*_*ski 5

GoogleMaps很可能正在使用新的LocationClientAPI,这是在Google I/O 2013上宣布的.您可能也希望切换到此API.

据说更精确,使用更少的电池.

有关如何获取位置更新的更多信息:http://developer.android.com/training/location/receive-location-updates.html