Google maps – posición de la cámara con marcador en la parte inferior

Si nos fijamos en la navegación de google, siempre mantiene el marcador del conductor cerca de la parte inferior y cuando se mueve la cámara que ofrece para restablecer de nuevo a la parte inferior. Me pregunto cómo lograr lo mismo dado un marcador.

Hubo una pregunta similar antes , pero las respuestas ofrecidas no consideran que el mapa sea inclinado lo que da como resultado una proyección errónea.

Introduzca aquí la descripción de la imagen

Nima, hay diferentes maneras de lograr este comportamiento ajustando los valores en las posiciones de la cámara.

Por ejemplo, tiene 2 geolocalización latlng información disponible con usted, UserLocation y DestinationLocation encontrar el punto medio de esta ubicación y establecer el objetivo de la cámara en él. Y entonces usted puede mover la cámara a nivel de zoom que cubren tanto la geolocalización con el relleno adecuado de la parte superior e inferior, especificando el valor del cojinete.

//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)); 

El marcador de posición actual siempre a la parte inferior de la pantalla mientras se mueve también. Para eso tenemos que establecer

 map.setPadding(0,320,0,0); 

Así pues, fijamos el pdding encima del mapa 320 entonces toma un cierto espacio de la tapa de la pantalla. En tu código final como este

  CameraPosition cameraPosition = new CameraPosition.Builder() .target(newLatLng) .zoom(18) .bearing(0) .tilt(0) .build(); map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); map.setPadding(0,320,0,0); 
  • Actualizado una aplicación con v1 mapa en google jugar ahora mostrando azulejos en blanco
  • Android agrega a las ubicaciones de los usuarios (Google maps)
  • Cómo mover camra a un marcador específico en google maps v2 en android
  • Android google maps, google lugares, latitud norte supera el sur latitiude
  • Enviar el GeoPoint a otra actividad
  • Utilidad de mapas de Android: imágenes de la URL
  • Cómo mostrar lugares cercanos como atm, hospitales en android google map?
  • Servicios de Google Play que no funcionan en el emulador de Android API Nivel 11
  • Cómo cambiar el color del marcador cuando haga clic en marcador en android?
  • Buscar en todos los lugares en el nombre de la ciudad
  • Cómo dibujar una ruta utilizando diferentes valores long lat?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.