Eso es todo.

Para comenzar a desarrollar, consulta nuestra documentación para desarrolladores.

Activar la Google Maps Android API

Para que puedas comenzar, te proporcionaremos orientación en la Google Developers Console a fin de que hagas primero algunas acciones:

  1. Crear o seleccionar un proyecto
  2. Activar la Google Maps Android API
  3. Crear claves correspondientes
Continuar

Agregar un mapa con ajustes de estilo

En este instructivo, te mostramos la manera de agregar un mapa con ajustes de estilo personalizados a tu app de Android. En el instructivo se usa el modo nocturno como ejemplo de ajustes de estilo personalizados.

Con las opciones de estilo, puedes personalizar la presentación de los estilos predeterminados de los mapas de Google y cambiar la representación visual de ciertas características, como carreteras, parques, negocios y otros puntos de interés. Esto significa que puedes resaltar determinados componentes del mapa o hacer que este complemente el estilo de tu app.

La aplicación de ajustes de estilo solo funciona en el tipo de mapa normal.

Obtener el código

Clona o descarga el repositorio de Google Maps Android API v2 Samples de GitHub.

Configurar tu proyecto de desarrollo

Sigue estos pasos para crear el proyecto de instructivo en Android Studio.

  1. Descarga e instala Android Studio.
  2. Agrega el paquete de Google Play services a Android Studio.
  3. Clona o descarga el repositorio de Google Maps Android API v2 Samples si no lo hiciste al comenzar a leer este instructivo.
  4. Importa el proyecto de instructivo:

    • En Android Studio, selecciona File > New > Import Project.
    • Dirígete a la ubicación en la que guardaste el repositorio de Google Maps Android API v2 Samples después de descargarlo.
    • Busca el proyecto StyledMap en esta ubicación:
      PATH-TO-SAVED-REPO/android-samples/tutorials/StyledMap
    • Selecciona el directorio del proyecto y luego haz clic en OK. Android Studio compilará tu proyecto usando la herramienta de compilación de Gradle.

Obtener una clave de API y habilitar las API necesarias

Para completar este instructivo, necesitas una clave de API de Google con autorización para usar la Google Maps Android API.

Haz clic en el siguiente botón para obtener una clave y activar la API.

Get a Key

Si deseas obtener información detallada, consulta la guía completa para obtener una clave de API.

Agregar la clave de la API a tu app

  1. Edita el archivo gradle.properties de tu proyecto.
  2. Pega tu clave de API en el valor de la propiedad GOOGLE_MAPS_API_KEY. Cuando creas tu app, Gradle copia la clave de API en el manifiesto de Android de la app.

    GOOGLE_MAPS_API_KEY=PASTE-YOUR-API-KEY-HERE
    

Crear y ejecutar tu app

  1. Conecta un dispositivo Android a tu computadora. Sigue las instrucciones a fin de habilitar opciones para el desarrollador en tu dispositivo Android y configurar tu sistema de modo que detecte el dispositivo. (Como alternativa, puedes usar Android Virtual Device (AVD) para configurar un dispositivo virtual. Cuando selecciones un emulador, asegúrate de elegir una imagen que incluya las API de Google. Para obtener información detallada, consulta la guía de introducción).
  2. En Android Studio, haz clic en la opción Run del menú (o el ícono del botón de reproducción). Seleccione un dispositivo según se solicite.

Android Studio invoca a Gradle para generar la app y la ejecuta en el dispositivo o el simulador. Verás un mapa con ajustes de estilo oscuro (modo nocturno) similar a la imagen de esta página.

Solución de problemas:

Información sobre el código

En esta sección del instructivo se explican las partes más importantes de la app StyledMap, para que aprendas a crear una app similar.

Agregar un recurso que contiene un objeto con estilo JSON

Agrega un recurso a tu proyecto de desarrollo, que contenga tus declaraciones de estilo en formato JSON. Puedes usar un recurso o una string sin procesar, como se muestra en los ejemplos siguientes.

Nota: La misma app que descargaste desde GitHub usa un recurso sin procesar.

Recurso sin procesar

Define un recurso sin procesar en /res/raw/style_json.json, que contiene la declaración de estilo JSON para ajustar ajustes de estilo en el modo nocturno:

Recurso de strings

Define un recurso sin procesar en /res/values/style_strings.xml, que contiene la declaración de estilo JSON para ajustes de estilo en el modo nocturno. En este instructivo se usa el nombre de string style_json. En este archivo, debes usar una barra invertida para evadir las comillas:

Pasa un objeto de estilo JSON a tu mapa

Para aplicar estilo a tu mapa, llama a GoogleMap.setMapStyle() y pásale un objeto MapStyleOptions que contenga tus declaraciones de estilo en formato JSON.

Recurso sin procesar

En el siguiente ejemplo de código se supone que tu proyecto contiene un recurso sin procesar llamado style_json:

package com.example.styledmap;

import android.content.res.Resources;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

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.MapStyleOptions;

/**
 * A styled map using JSON styles from a raw resource.
 */
public class MapsActivityRaw extends AppCompatActivity
        implements OnMapReadyCallback {

    private static final String TAG = MapsActivityRaw.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Retrieve the content view that renders the map.
        setContentView(R.layout.activity_maps_raw);

        // Get the SupportMapFragment and register for the callback
        // when the map is ready for use.
        SupportMapFragment mapFragment =
                (SupportMapFragment) getSupportFragmentManager()
                        .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    /**
     * Manipulates the map when it's available.
     * The API invokes this callback when the map is ready for use.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {

        try {
            // Customise the styling of the base map using a JSON object defined
            // in a raw resource file.
            boolean success = googleMap.setMapStyle(
                    MapStyleOptions.loadRawResourceStyle(
                            this, R.raw.style_json));

            if (!success) {
                Log.e(TAG, "Style parsing failed.");
            }
        } catch (Resources.NotFoundException e) {
            Log.e(TAG, "Can't find style. Error: ", e);
        }
        // Position the map's camera near Sydney, Australia.
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(-34, 151)));
    }
}

El diseño (activity_maps_raw.xml) tiene el siguiente aspecto:

Recurso de strings

En el siguiente código de ejemplo se supone que tu proyecto contiene un recurso de string llamado style_json:

package com.example.styledmap;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

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.MapStyleOptions;

/**
 * A styled map using JSON styles from a string resource.
 */
public class MapsActivityString extends AppCompatActivity
        implements OnMapReadyCallback {

    private static final String TAG = MapsActivityString.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Retrieve the content view that renders the map.
        setContentView(R.layout.activity_maps_string);

        // Get the SupportMapFragment and register for the callback
        // when the map is ready for use.
        SupportMapFragment mapFragment =
                (SupportMapFragment) getSupportFragmentManager()
                        .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    /**
     * Manipulates the map when it's available.
     * The API invokes this callback when the map is ready for use.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {

        // Customise the styling of the base map using a JSON object defined
        // in a string resource file. First create a MapStyleOptions object
        // from the JSON styles string, then pass this to the setMapStyle
        // method of the GoogleMap object.
        boolean success = googleMap.setMapStyle(new MapStyleOptions(getResources()
                .getString(R.string.style_json)));

        if (!success) {
            Log.e(TAG, "Style parsing failed.");
        }
        // Position the map's camera near Sydney, Australia.
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(-34, 151)));
    }
}

El diseño (activity_maps_string.xml) tiene el siguiente aspecto:

Información adicional sobre las declaraciones de estilo JSON

En los mapas con ajustes de estilo se usan dos conceptos para aplicar colores y otros cambios de estilo a un mapa:

  • Los selectores especifican los componentes geográficos a los cuales puedes aplicar estilo en el mapa. Entre estos componentes se incluyen carreteras, parques y masas de agua, entre otros, además de sus etiquetas. Entre los selectores se incluyen funciones y elementos, que se especifican como propiedades featureType y elementType.
  • Los parámetros de estilo son propiedades de color y visibilidad que puedes aplicar a elementos del mapa. Definen el color de visualización a través de una combinación de valores de matriz, color y luminosidad o gama.

Consulta la referencia de estilo para acceder a una descripción detallada de las opciones de ajuste de estilo de JSON.

Google Maps APIs Styling Wizard

Usa Google Maps APIs Styling Wizard como método rápido para generar un objeto de ajuste de estilo JSON. La Google Maps Android API admite las mismas declaraciones de estilo que la Google Maps JavaScript API.

Siguiente paso

Consulta la sección sobre ocultamiento de características del mapa con ajustes de estilo.

Enviar comentarios sobre...

Google Maps Android API
Google Maps Android API
Si necesitas ayuda, visita nuestra página de asistencia.