private void enableUserLocation(boolean enable) { if (mLocationProvider == null) { mLocationProvider = new UserLocationProvider( new GpsLocationProvider(getActivity().getApplicationContext()), mMapView); mLocationProvider.setDrawAccuracyEnabled(true); if (mLocationListener != null) { mLocationProvider.setLocationListener(mLocationListener); } mMapView.addOverlay(mLocationProvider); } if (enable) { mLocationProvider.enableMyLocation(); if (mUserLocationTrackingMode == TrackingMode.NONE) { mLocationProvider.disableFollowLocation(); } else { mLocationProvider.enableFollowLocation(); } } else { mLocationProvider.disableFollowLocation(); mLocationProvider.disableMyLocation(); } }
@Override public void setLocationListener(LocationListener listener) { mLocationListener = listener; if (mLocationProvider != null) { mLocationProvider.setLocationListener(mLocationListener); final Location lastLocation = mLocationProvider.getLastFix(); if (lastLocation != null) { mLocationListener.onLocationChanged(lastLocation); } } }