Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的位置层和位置侦听器中的位置不同_Android_Google Maps_Location_Google Maps Android Api 2 - Fatal编程技术网

Android 我的位置层和位置侦听器中的位置不同

Android 我的位置层和位置侦听器中的位置不同,android,google-maps,location,google-maps-android-api-2,Android,Google Maps,Location,Google Maps Android Api 2,对于谷歌地图,我设置了选项setMyLocationEnabled(true),它会在地图上绘制我的位置,但我从LocationListener获得的位置是不同的。我从onLocationChange(Location Location)添加的标记和我的位置(蓝点)并不总是在同一个位置 位置更新: @Override public void onMapLoaded() { try { LocationManager locationManager = (L

对于谷歌地图,我设置了选项
setMyLocationEnabled(true)
,它会在地图上绘制我的位置,但我从
LocationListener
获得的位置是不同的。我从
onLocationChange(Location Location)
添加的标记和我的位置(蓝点)并不总是在同一个位置

位置更新:

@Override
public void onMapLoaded() {
        try {
            LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
            Location getLastLocation = locationManager.getLastKnownLocation
                    (LocationManager.PASSIVE_PROVIDER);
            try {
                if (locationManager.getAllProviders().contains(LocationManager.GPS_PROVIDER)) {
                    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2 * 1000, 5, this);
                }
                if (locationManager.getAllProviders().contains(LocationManager.NETWORK_PROVIDER)) {
                    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 2 * 1000, 5, this);
                }
            } catch (SecurityException ex) {
                ex.printStackTrace();
            }
        } catch (NullPointerException | SecurityException ex) {
            ex.printStackTrace();
        }
    }



@Override
    public void onLocationChanged(Location location) {
        LatLng objLatLng = new LatLng(location.getLatitude(), location.getLongitude());
        marker = map.addMarker(new MarkerOptions().position(objLatLng));
    }

所以我的问题是如何获取我的位置层的位置源,或者如何更改我的位置更新请求以使它们具有相同的位置?

看看我知道它使用内置位置提供程序,但是我想访问它或者知道它是如何配置的。它使用它自己的实现,并且不能保证实现之间是相同的,所以正如我在回答中所说的,最好的选择是使用
GoogleMap.setLocationSource
方法替换my location图层的默认位置提供程序我不想替换为my location source,因为默认位置提供程序看起来更平滑,但如果无法获得默认位置提供程序,我会稍后再做。看看我知道它使用内置位置提供程序,但是我想访问它或者知道它是如何配置的。它使用它自己的实现,并且不能保证实现之间是相同的,所以正如我在回答中所说的,最好的选择是使用
GoogleMap.setLocationSource
方法替换my location图层的默认位置提供程序我不想替换为my location source,因为默认位置源看起来更平滑,但如果无法获得默认位置,我会稍后再进行替换。