Nima, istnieje inny sposób na osiągnięcie tego zachowania przez szczypanie wartości w pozycjach aparatu.
Na przykład masz dostęp do 2 informacji o lataniu geograficznym dostępnych dla ciebie, lokalizacji użytkownika i lokalizacji docelowej, znajdź punkt środkowy tej lokalizacji i ustaw dla niej cel kamery. Następnie możesz przesunąć kamerę na poziom powiększenia, który obejmuje geolokalizację z odpowiednim wypełnieniem górą i dołem, określając wartość namiaru.
//First build the bounds using the builder
LatLngBounds.Builder builder = new LatLngBounds.Builder();
LatLngBounds bounds;
builder.include(userLocation);
builder.include(destinationLocation);
bounds = builder.build();
// define value for padding
int padding =20;
//This cameraupdate will zoom the map to a level where both location visible on map and also set the padding on four side.
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds,padding);
mMap.moveCamera(cu);
// now lets make the map rotate based on user location
// for that we will add the bearing to the camera position.
//convert latlng to Location object
Location startLocation = new Location("startingPoint");
startLocation.setLatitude(userLocation.latitude);
startLocation.setLongitude(userLocation.longitude);
Location endLocation = new Location("endingPoint");
endLocation.setLatitude(destinationLocation.latitude);
endLocation.setLongitude(destinationLocation.longitude);
//get the bearing which will help in rotating the map.
float targetBearing = startLocation.bearingTo(endLocation);
//Now set this values in cameraposition
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(bounds.getCenter())
.zoom(mMap.getCameraPosition().zoom)
.bearing(targetBearing)
.build();
mMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
opublikuj plik layout.xml. –
@ChiragSavsani dlaczego? nie ma to nic wspólnego z układem, zakładamy, że fragment mapy wsparcia jest ładowany do frarmayout. – Nima