Usando Google maps en android
Últimamente he estado trabajando mucho en android, y entre las cosas que he hecho es implementar Google maps en android para unas aplicaciones.
Así que este tutorial es sobre cómo implementar google maps paso a paso.
Crear llave para Google maps
vamos a entrar a la consola de google y aquí crearemos un nuevo proyecto
Creamos y le ponemos un nombre y nos regresara al home, aquí debemos seleccionar nuevamente el proyecto.
vamos a elegir API y servicios y si necesitamos
en caso que solo necesitemos google maps vamos a ir a Biblioteca.
Vamos a ir a Api de Google maps > Google maps android API
ahora nos pedirá crear credencial de Google maps en android
vamos a seleccionar google maps android api y tocamos el boton que dice que credencial necesito
esta credencial lo guardamos porque nos servirá más adelante , ahora vamos a android studio.
Android Studio
La forma más fácil es crear una nueva actividad tipo mapa , cuando es la primera vez te recomiendo crear esa actividad por la configuraciones agrega android studio en el proyecto
Que cambia de nuestro proyecto:
AndroidManifest:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" />
este meta-dato va dentro de la etiqueta <application> con esta meta etiqueta te dice que tienes una llave en Google maps en android y podrás acceder a estos servicios .
res/values-/google_maps_api.xml:
Este documento es la razón porque recomiendo crear esta actividad no por el contenido del string que es el siguiente:
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false"> llave_googleApi </string>
si no que te genera varias instrucciones para que registres tu app de forma sencilla y asociar tu llave de Google maps en android
layout/activity_maps.xml:
aquí nos genera un fragmento para google maps
<fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.unprogramador.MapsActivity" />
Nosotros podemos ponerle un tamaño específico si queremos usar esta vista y agregar mas cosas o simplemente podemos incluirlo en otra vista.
MapsActivity.java:
Aquí voy a explicar que encontramos, esto lo podemos implementar en cualquier clase creada anteriormente.
Métodos para Google maps
Expliquemos , un amigo fiel que usaremos es el implements en cualquier de nuestras clases, aqui necesitaremos
OnMapReadyCallback
Creamos una variable que se de tipo GoogleMap, aquí tendremos la información del mapa que usaremos.
Si hacemos un implement a nuestro codigo necesitaremos agregar metodos asi que tenemos que implementar onMapReady
@Override public void onMapReady(GoogleMap googleMap) { }
con esto hacemos cuando entra a la actividad lo primero que hace es cargar la información de google maps y enseñarlo
Agregar puntos
En Google maps en android, podemos agregar puntos en el mapa, para esto debemos trabajar con Latitud y longitud
para crear uno punto nuevo debemos escribir lo siguiente:
LatLng sydney = new LatLng(-34, 151);
nota: el primer valor es latitud y el segundo longitud
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
addMarker es literal, agregar un marcado y contiene las siguientes opciones.
- position(LatLng)
- title(String)
- draggable(boolean) – true pueden arrastrar el puntero
- Anchor – El punto de la imagen que se dispondrá en la posición de LatLng del marcador.
- Alpha – Establece la opacidad del marcador. Valor predeterminado es 1.0.
- Snippet – Texto adicional que aparece debajo del título
- icon – podemos cambiar el icono del punto rojo
- visible(boolean) – si es false no se muestra el puntero
si queremos posicionar el marcador y mover la cámara de Google maps en android usaremos el siguiente código.
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));//Codigo completo @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; // Add a marker in Sydney and move the camera LatLng sydney = new LatLng(-34, 151); mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); }
con esto podemos usar el mapa y poner un punto en el mapa 🙂
Bonus
si queremos mostrar el icono de localización el código es el siguiente.
mMap.setMyLocationEnabled(true);
y para el tráfico en google maps en android.
mMap.setTrafficEnabled(false);
esto va en el onMapReady
Si queremos cambiar el icono podemos hacer lo siguiente, en este ejemplo cambiaremos en color azul en vez del rojo predeterminado.
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
si queremos un icono propio podemos hacer lo siguiente
.icon(BitmapDescriptorFactory.fromResource(R.drawable.locationmod)));
Usando iconos personalizados se puede ver de esta manera.