我的位置和标记有不同的位置

时间:2016-07-15 10:45:20

标签: android google-maps

为什么我的位置和标记位置不同?在添加标记之前,我单击浮动按钮,当我单击它时,我从getLatitude调用getLongitudeLocationManager。它类似于地图就绪并移动相机,所以我认为标记和mylocation必须相同:

enter image description here

这是我的代码:

private class MyLocationListeners implements LocationListener {
    @Override
    public void onLocationChanged(Location location) {
        longitude = null;
        latitude = null;

        longitude = String.valueOf(location.getLongitude());
        Log.d(TAG, "onLocationChanged1: " + longitude);

        latitude = String.valueOf(location.getLatitude());
        Log.d(TAG, "onLocationChanged2: " + latitude);
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }
}

我设置MyLocationListener的代码:

locationListener = new MyLocationListeners();
locationManager.requestLocationUpdates(
        LocationManager.GPS_PROVIDER,
        5000,
        10,
        locationListener
);

1 个答案:

答案 0 :(得分:0)

My location layer使用它自己的位置提供程序,它不是融合位置提供程序,也不是位置管理器。来自the documentation

  

GoogleMap对象的my-location图层有一个内置的位置提供程序,但可以用另一个实现此接口的地图提供程序替换它。

此外,我的位置图层,融合位置提供商和位置管理器可以获得不同的位置(取决于提供商,GPS和网络可用性,......)。

您可以使用GoogleMap.setLocationSource方法替换my-location图层的默认位置提供程序。