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

2 Solutions collect form web for “Google maps – posición de la cámara con marcador en la parte inferior”

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); 
  • Error en el comando Keytool
  • Android + cargador universal de imágenes: muestra marcador personalizado con imagen en google map
  • ¿Cómo logro una animación suave del marcador de ubicación en android en un mapa de google?
  • Almacenamiento en caché de Google Maps para uso sin conexión (api v2)
  • Técnica para ejecutar varias MapActivities en el mismo proceso
  • Multiple MapActivitys en la pila
  • ¿Funciona el reconocimiento de actividad de Google en las versiones anteriores de Android?
  • Diferencia de versión de la API de Google Maps
  • Cómo obtener lat y largo en evento de toque de google map?
  • Cómo limitar la búsqueda de ubicación cercana según la ubicación actual mediante google maps en android?
  • El marcador del mapa de Google se reemplaza por el rectángulo delimitador en el zoom
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.