Guía de inicio rápido: Cómo agregar un mapa

A continuación, se ofrece una guía de inicio rápido a fin de crear una app para Android que muestre un mapa. Android Studio es el entorno de desarrollo recomendado recomendado para compilar una app con el SDK de Maps para Android.

Paso 1. Descarga Android Studio

Sigue las guías para descargar y, luego, instalar Android Studio.

Paso 2. Instala el SDK de Servicios de Google Play

Agrega Servicios de Google Play a Android Studio.

Paso 3. Crea un proyecto de Google Maps

Sigue estos pasos para crear un nuevo proyecto de app con una página de actividad en Maps:

  1. Inicia Android Studio.
  2. Crea un proyecto nuevo de la siguiente manera:
    • Si ves el diálogo con la leyenda Welcome to Android Studio, selecciona Start a new Android Studio project. Esta opción se encuentra disponible en "Quick Start", a la derecha del diálogo.
    • De lo contrario, haz clic en File en la barra de menú de Android Studio; luego, en New y New Project.
  3. En el diálogo con la leyenda Choose your project, selecciona la pestaña que corresponda a la plataforma para la que deseas realizar tu proyecto de desarrollo. Para la mayoría de los usuarios, se recomienda conservar la opción predeterminada Phone and Tablet.
  4. Selecciona Google Maps Activity y, luego, haz clic en Next.
  5. Ingresa el nombre de la app, el nombre del paquete y la ubicación del proyecto, el lenguaje de programación (Java o Kotlin) y el nivel mínimo de la API de Android que admite tu app. Luego, haz clic en Finish.

Android Studio inicia Gradle y compila tu proyecto. Este proceso puede tomar unos segundos. Para obtener más información sobre cómo crear un proyecto en Android Studio, consulta [Android Studio documentation][studio-projects].

Cuando finalice la compilación, Android Studio abrirá los archivos google_maps_api.xml y MapsActivity.java en el editor. (Ten en cuenta que tu actividad puede tener un nombre diferente, pero será el que indicaste durante la configuración). Antes de intentar ejecutar la aplicación, observa que el archivo google_maps_api.xml contiene instrucciones para obtener una clave de API de Google Maps. En la siguiente sección, se explica con más detalle cómo obtener la clave de API.

Paso 4. Configura una clave de API de Google Maps

  1. Habilita la facturación en tu proyecto. Para obtener información, consulta cómo crear una cuenta de facturación.
  2. En Cloud Console, habilita el SDK de Maps para Android en tu proyecto. Para obtener más detalles, consulta cómo habilitar las API.
  3. Sigue las instrucciones de la guía Obtén una clave de API para obtener, agregar y restringir una clave de API.

Paso 5. Observa el código

Examina el código que proporciona la plantilla. En particular, observa los siguientes archivos de tu proyecto de Android Studio.

El archivo de diseño XML

De forma predeterminada, el archivo en formato XML que define el diseño de la app se encuentra en res/layout/activity_maps.xml. En este archivo, se incluye el siguiente código:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/map"
    tools:context=".MapsActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment" />

El archivo Java de actividad en Maps

De forma predeterminada, el archivo Java que define la actividad en Maps se denomina MapsActivity.java. En este archivo, se debe incluir el siguiente código después del nombre de tu paquete:

Java

// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.maps.example;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

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 MapsActivity extends AppCompatActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     *
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    @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));
    }
}

      

Kotlin

// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.maps.example.kotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

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
import com.google.maps.example.R

internal class MapsActivity : AppCompatActivity(), OnMapReadyCallback {

    private lateinit var mMap: GoogleMap

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_maps)
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        val mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    override fun onMapReady(googleMap: GoogleMap) {
        mMap = googleMap

        // Add a marker in Sydney and move the camera
        val sydney = LatLng(-34.0, 151.0)
        mMap.addMarker(MarkerOptions()
            .position(sydney)
            .title("Marker in Sydney"))
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
    }
}
      

Si tu archivo de actividad en Maps no incluye el código anterior, reemplaza el contenido del archivo que se incluye después del nombre de tu paquete por este código.

Paso 6. Conecta un dispositivo Android

La manera más simple de ver tu app en acción es conectar un dispositivo Android a tu computadora. Estas instrucciones te permiten habilitar las opciones para desarrolladores en tu dispositivo Android y configurar tu app y el sistema para que detecten el dispositivo.

También puedes usar Android Emulator para ejecutar tu app. Usa el Administrador del dispositivo virtual de Android (Administrador de AVD) para configurar uno o más dispositivos virtuales que podrás usar con Android Emulator cuando compiles y ejecutes tu app. Cuando elijas tu emulador, asegúrate de usar Android 4.1.1 o versiones superiores y ten cuidado de seleccionar una imagen que incluya las API de Google. De lo contrario, la app no tendrá las API de tiempo de ejecución requeridas para ejecutarse. Además, ten en cuenta las instrucciones para configurar la aceleración de una máquina virtual, que debes usar con un AVD de destino x86, tal como se describe en las instrucciones. Esto mejorará tu experiencia con el emulador.

Paso 7. Implementa y ejecuta tu app

En Android Studio, haz clic en la opción Run del menú (o en el ícono del botón de reproducción) para ejecutar tu app.

Cuando se indique que selecciones un dispositivo, elige una de las siguientes opciones:

  • Selecciona el dispositivo Android conectado a tu computadora.
  • También puedes seleccionar el botón de selección Launch emulator y elegir el dispositivo virtual que configuraste previamente.

Haz clic en OK. Android Studio invocará a Gradle para compilar tu app y, luego, mostrará los resultados en el dispositivo o el emulador. La app podría tardar unos minutos en abrirse.

Próximos pasos

Te recomendamos revisar algunos códigos de muestra.

Puedes obtener más información sobre los objetos de mapa en la guía para desarrolladores.