Контекст: Я работаю над приложением, которое позволяет пользователям видеть других пользователей в радиусе 20 миль.Когда они входят в систему, они отправляются в MapsActivity, которая увеличивает их текущее местоположение и показывает другим онлайн-пользователям в пределах 20 миль.
Проблема: Каждый раз, когда я прокручиваю карту, я возвращаюсь к своему текущему местоположению, и если я уменьшаю или увеличиваю масштаб, он возвращается к тому же масштабу, который я установил.Я даже пробовал эту строку, но она не работала:
eaterGoogleMap.getUiSettings().setAllGesturesEnabled(true);
Что мне нужно сделать: Приблизить к их местоположению при первом открытии MapsActivity вмое приложение.Разрешить пользователю иметь возможность прокручивать карту точно так же, как в приложении Google Maps, а также обновлять свое положение при перемещении, как в приложении Google Maps.
Что я сделал:
@Override
public void onConnected(Bundle bundle) {
// Constantly Update User location every 1.1 seconds!
locationRequest = new LocationRequest();
locationRequest.setInterval(1100);
locationRequest.setFastestInterval(1100);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this);
return;
}
Log.d("reque", "check here");
}
@Override
public void onLocationChanged(Location location) {
lastLocation = location;
if (currentUserLocationMarker != null) {
currentUserLocationMarker.remove();
}
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title(getString(R.string.user_current_location_marker_title));
markerOptions.visible(false);
currentUserLocationMarker = eaterGoogleMap.addMarker(markerOptions);
float zoom = 17.0f;
eaterGoogleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
eaterGoogleMap.getUiSettings().setZoomControlsEnabled(true);
eaterGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoom));
eaterGoogleMap.getUiSettings().setRotateGesturesEnabled(false);
// Begin to locate all online Vendors to display on map
locateOnlineVendors();
}