Como Centrar Múltiples Marcadores en un Mapa de Google en Android con Kotlin 1.3.5

4 minuto(s)

Demo Github

Si estas trabajando en la creación de una aplicación Android con Google Maps y Kotlin puede que necesites centrar todos los marcadores de las ubicaciones en la pantalla del Dispositivo Android, aplicaciones que cuentan con buscadores de Lugares Públicos o similares toman como base la ubicación del usuario y suelen tener esta funcionalidad de centrar los lugares en la pantalla del Dispositivo, en este Post te enseñare como hacerlo con el Lenguaje de Programación Kotlin.

Antes de continuar con el Post te recomiendo leer el artículo Que es Kotlin y otros detalles, si ya conoces sobre Kotlin no hay problema puedes continuar.

Actividad del Mapa

Tengo un archivo llamado GoogleMapsActivity.kt en el cual hago el uso del método onCreate para imprimir la interface de mi Mapa de Google


Debajo del método onCreate voy agregar el método onMapReady que Google nos pide crear para trabajar con el Mapa de Google, en mi método onMapReady voy agregar 2 marcadores con las ubicaciones de 2 Lugares Turísticos: Machu Picchu – Perú y Lima – Perú


Si cargo mi aplicación me aparecerá un Vista inicial en donde no puedo ver los 2 marcadores y solamente si me desplazo a la izquierda en el Mapa recién puedo ver los 2 marcadores

Centrar Marcadores en la Pantalla del Dispositivo

Para centrar los marcadores en la pantalla del Dispositivo, haré uso del método LatLngBounds.Builder de Android que me permite crear limites de los puntos basados en las Ubicaciones en el Mapa.

Primero crearé una variable llamada constructor y dentro de ella coloco mi método LatLngBounds.Builder()


Luego concateno la variable constructor con las ubicaciones de los marcadores con el objeto include y obtengo sus latitudes y longitudes con el método getPosition


Ahora creo una variable llamada limites y coloco dentro de ella mi variable constructor y creo los límites con build


Luego creo 1 variable llamada ancho y dentro de ella accedo al método displayMetrics de Android con el cual puedo obtener el ancho, alto, densidad de la pantalla del Dispositivo, etc., pero específicamente voy a obtener el ancho de la Pantalla del Dispositivo con el método widthPixels


También creo una variable llamada alto en donde igual que con la variable ancho hago uso del método displayMetrics pero esta vez voy a obtener el alto de la Pantalla del Dispositivo con el método heightPixels


Paso seguido creo una variable llamada padding en donde multiplico el valor de mi variable alto por 25 % y lo convierto a Entero (Integer) con el método toInt de Kotlin.

En este punto creo una variable llamada centrarmarcadores en donde hago uso del método CameraUpdateFactory que me permite cambiar la cámara según los valores de mis variables limites, ancho, alto y padding que he creado anteriormente

Por último muevo la cámara del dispositivo y centro los marcadores en la pantalla con el método animateCamera le paso el mapa de Google mMap


Si cargo mi aplicación, debería de ver los marcadores centrados en el Mapa

A continuación todo el código completo del archivo GoogleMapsActivity.kt

Conclusión

Existen muchas formas de centrar los marcadores en un mapa de Google, esta es una forma la cual te ayuda a tener una idea de como hacerlo con Kotlin en una aplicación Android que cuente con una mapa de Google.

En el Demo que esta al inicio de este Tutorial puedes ver un ejemplo con 3 y 4 marcadores en donde puedes ver como funciona esta forma de centrar múltiples marcadores en la pantalla del Dispositivo Android. 

Nota(s)

  • Algunos de los pasos y reglas mencionadas pueden variar en el futuro, esto no depende de Nosotros si no de los desarrolladores que dan soporte a Kotlin, Google Maps y Android.
  • En el emulador de Android Studio no me centra los marcadores quizás porque el emulador no tiene los recursos que tiene un dispositivo físico, pero en un dispositivo físico si centra los marcadores sin problemas.

Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.