Descargar librerías requeridas del SDK
En los paquetes descargados del Android SDK deben estar instalados los siguiente paquetes:
-
Google Play Services
-
Google Repository
Puedes comprobarlo usando el botón SDK manager de Android Studio y acceder a la pestaña SDK Tools:
Añadir dependencias al proyecto
En el proyecto de Android Studio que se está creando se debe indicar que incluya la librería de Google Play Services para que se compile correctamente. Esto puedes hacerlo usando el menú File > Project Structure, o bien el botón Project Structure de la barra de herramientas de Android Studio, y luego acceder a la sección Modules > App en la lista de la parte derecha. Selecciona la pestaña Dependencies porque ahí es donde puedes añadir librerías a tu proyecto. Usa el botón + de la parte inferior y selecciona la opción Library dependency.
Selecciona la librería com.google.android.gms:play-services-maps, con el número de versión que te aparezca:
El resultado de esta acción es que en el archivo build.gradle del módulo app del proyecto se haya incluido una nueva línea que indica al compilar que utilice la librería que se ha seleccionado. Comprueba que se ha añadido como aparece en la imagen:
Crear una API Key para la aplicación
Para Google permita a tu aplicación acceder a su servicio de mapas, debes obtener un código (key) que se debe indicar en el proyecto.
Accede a la direccción https://console.developers.google.com/project con tu cuenta de Google. Crea un nuevo proyecto desde la lista desplegable de la parte superior asignándole el nombre que desees.
Usa la sección Credenciales de la parte izquierda, y usa el botón Crear credenciales, escogiendo la opción Clave de API.
Copia el código que aparece porque tendrás que usarlo posteriormente.
Abre el archivo AndroidManifest.xml de tu proyecto (dentro de la carpeta manifests) y edítalo añadiendo las siguientes líneas antes de la etiqueta </application>, cambiando la clave que aparece por la clave que te ha asignado Google hace un momento:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyB9oARLFPe4wRGyeuWJq0IqZ0g84TjmjVI" />
Habilitar Google Maps API en el servicio de Google
Además de crear la clave de API para la aplicación, es necesario habilitar la API de Google Maps en el servidor de Google si no se ha hecho anteriormente. Accede a la sección Bibliotecas, y usa el enlace de Google Maps Android API.
Si no está habilitado este servicio, podrás actviarlo usando el enlace Habilitar que aparece en la parte superior.
Una vez activado el servicio podrás ir viendo el número de peticiones del servicio de mapas que se reciben en el servidor provenientes de tu aplicación. Ten en cuenta que este servicio, así como otros que ofrece Google gratuito inicialmente, puede tener límites de uso, pero en el caso del servicio de Google Maps Android API no hay límite, al menos en el momento de escribir este artículo, según informan en las preguntas frecuentes.
Crear un Fragment donde se muestre el mapa
Utiliza un código similar al siguiente en un nuevo Fragment que debes crear en tu proyecto (no es necesario que tenga su propio layout):
package es.javiergarciaescobedo.ejemplomapafragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class BlankFragment extends SupportMapFragment implements OnMapReadyCallback {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = super.onCreateView(inflater, container, savedInstanceState);
getMapAsync(this);
return rootView;
}
@Override
public void onMapReady(GoogleMap map) {
// Posicionar el mapa en una localización y con un nivel de zoom
LatLng latLng = new LatLng(36.679582, -5.444791);
// Un zoom mayor que 13 hace que el emulador falle, pero un valor deseado para
// callejero es 17 aprox.
float zoom = 13;
map.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoom));
// Colocar un marcador en la misma posición
map.addMarker(new MarkerOptions().position(latLng));
// Más opciones para el marcador en:
// https://developers.google.com/maps/documentation/android/marker
// Otras configuraciones pueden realizarse a través de UiSettings
// UiSettings settings = getMap().getUiSettings();
}
}
Ya sólo falta añadir este Fragment dentro de la Activity del proyecto como se indica en el artículo Fragment dentro de una Activity.