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

标签 android google-maps

为什么我的位置和标记有不同的位置?在添加标记之前,我单击 float 按钮,当我单击该按钮时,我从 LocationManager 调用 getLatitudegetLongitude。这类似于准备好 map 并移动相机,所以我认为标记和 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
);

最佳答案

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

A GoogleMap object has a built-in location provider for its my-location layer, but it can be replaced with another one that implements this interface.

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

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

关于android - 我的位置和标记有不同的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38394172/

相关文章:

android - 更改 requestLocationUpdate(String provider, long minTime, float minDistance, LocationListener listener) 方法运行时的参数值

android - 从 appwidget 制作缩放动画

google-maps - Google Map API v3 颜色自定义

javascript - 如何使用google maps api V3计算两个城市之间的距离

javascript - 添加填充到谷歌地图 bounds.contains()

java - Google map api 搜索位置并添加显示 NullPointEreException 错误的标记

Android Studio - 从后端数据表中删除批量数据

java - 如何强制弹出 Android 键盘?

android - 查找我的本地 Android 存储库工作副本的来源

javascript - 谷歌地图 - 打开 InfoWindow onMouseover 而不是 onClick