Esquema de URL de Google Maps para iOS

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En dispositivos que ejecutan iOS 9 y versiones posteriores, puedes usar vínculos universales para iniciar Google Maps cuando tengas una URL de Google Maps.

Puedes usar el esquema de URL de Google Maps para iniciar la app de Google Maps para iOS y realizar búsquedas, obtener solicitudes de instrucciones sobre cómo llegar y mostrar vistas de mapa. Cuando inicias Google Maps, tu identificador de paquete se envía automáticamente como parte de la solicitud.

No necesitas una clave de API de Google para utilizar el esquema de URL de Google Maps.

Google Maps para iOS admite los vínculos universales en dispositivos que ejecutan iOS 9 o versiones posteriores.

Si la URL coincide con la siguiente expresión regular, y el dispositivo ejecuta iOS 9 o una versión posterior, te recomendamos que uses el método openURL de forma directa.

(http(s?)://)?
((maps\.google\.{TLD}/)|
 ((www\.)?google\.{TLD}/maps/)|
 (goo.gl/maps/))
.*

Por ejemplo:

Swift

UIApplication.shared.openURL(URL(string:"https://www.google.com/maps/@42.585444,13.007813,6z")!)

Objective‑C

[[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"https://www.google.com/maps/@42.585444,13.007813,6z"]];

Descripción general

Un esquema de URL te permite iniciar una aplicación para iOS nativa desde otra aplicación para iOS o una aplicación web. Puedes configurar opciones en la URL que se pasará a la aplicación iniciada. La app de Google Maps para iOS admite los siguientes esquemas de URL:

  • comgooglemaps:// y comgooglemaps-x-callback://: Estos esquemas te permiten iniciar la app de Google Maps para iOS y realizar una de varias acciones:

    • Muestra un mapa en una ubicación y a un nivel de zoom especificados.
    • Busca ubicaciones o lugares y muéstralos en un mapa.
    • Solicitar indicaciones para ir de una ubicación a otra. Se pueden mostrar instrucciones para cuatro modos de transporte: en automóvil, a pie, en bicicleta y en transporte público.
    • Agrega la navegación a tu app.
    • A través de iOS 8, realiza una devolución de llamada cuando se complete la app mediante comgooglemaps-x-callback://. A menudo, las devoluciones de llamada se usan para devolver a un usuario a la app que abrió originalmente Google Maps para iOS. Ten en cuenta que, en iOS 9, el sistema proporciona automáticamente un vínculo "Volver a" en la esquina izquierda de la barra de estado.
  • comgooglemapsurl://: Este esquema te permite iniciar la app de Google Maps para iOS con una URL derivada del sitio web de Google Maps para computadoras de escritorio. Esto significa que puedes ofrecer a tus usuarios una experiencia móvil nativa en lugar de simplemente cargar el sitio web de Google Maps.

    • La URL original puede ser para maps.google.com o google.com/maps, o usar cualquier dominio de país de nivel superior válido en lugar de com. También puedes pasar goo.gl/maps URL de redireccionamiento.
    • Puedes emitir una devolución de llamada con los parámetros x-source y x-success con el esquema de URL comgooglemapsurl://.

Iniciar la aplicación de Google Maps para iOS y realizar una función específica

Para iniciar la app de Google Maps para iOS y, de manera opcional, realizar una de las funciones compatibles, usa un esquema de URL con el siguiente formato:

comgooglemaps://?parameters

o bien

comgooglemaps-x-callback://?parameters

Más adelante, en este documento, se ofrece una descripción detallada de los parámetros.

Comprobar la disponibilidad de la app de Google Maps en el dispositivo

Antes de presentar una de estas URL a un usuario en tu aplicación, primero debes verificar que esté instalada. Tu app puede verificar que el esquema de URL esté disponible con el siguiente código:

Swift

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)

Objective‑C

[[UIApplication sharedApplication] canOpenURL:
    [NSURL URLWithString:@"comgooglemaps://"]];

Por ejemplo, para mostrar un mapa de Central Park en Nueva York, puedes usar el siguiente código:

Swift

if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
  UIApplication.shared.openURL(URL(string:
    "comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
  print("Can't use comgooglemaps://");
}

Objective‑C

if ([[UIApplication sharedApplication] canOpenURL:
     [NSURL URLWithString:@"comgooglemaps://"]]) {
  [[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
  NSLog(@"Can't use comgooglemaps://");
}

Muestra de un mapa

Usa el esquema de direcciones URL para mostrar el mapa en una ubicación y a un nivel de zoom especificados. También puedes superponer otras vistas sobre tu mapa o mostrar imágenes de Street View.

Parámetros

Todos los parámetros siguientes son opcionales. Si no se establecen parámetros, el esquema de URL iniciará la aplicación de Google Maps para iOS.

  • center: Es el punto central de la vista del puerto del mapa. Su formato es una string separada por comas de latitude,longitude.
  • mapmode: establece el tipo de mapa que se muestra. Se puede configurar en standard o streetview. Si no se especifica, se usará la configuración actual de la aplicación.
  • views: Activa o desactiva vistas específicas. Se puede establecer en satellite, traffic o transit. Se pueden configurar varios valores con un separador de coma. Si se especifica el parámetro sin valor, se borrarán todas las vistas.
  • zoom: Especifica el nivel de zoom del mapa.

Esta URL de ejemplo muestra el mapa centrado en Nueva York con el nivel de zoom 14 y la vista de tráfico activada:

comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic

Mapa de tráfico de Nueva York

Estos son algunos ejemplos adicionales:

comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Usa este esquema para mostrar solicitudes de búsqueda dentro de una ubicación de viewport especificada.

Parámetros

Además de los parámetros que se usan para mostrar un mapa, la búsqueda admite el parámetro q.

  • q: Es la string de consulta de tu búsqueda.

Esta URL de ejemplo busca "Pizza" en la ubicación especificada:

comgooglemaps://?q=Pizza&center=37.759748,-122.427135

Pizzería cercana

Estos son algunos ejemplos adicionales:

comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA&center=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan&center=35.660888,139.73073&zoom=15&views=transit

Mostrando instrucciones sobre cómo llegar

Usa el esquema siguiente para solicitar y mostrar indicaciones que conecten dos ubicaciones. También puedes especificar el modo de transporte.

Parámetros

  • saddr: establece el punto de partida para las búsquedas de instrucciones sobre cómo llegar. Puede ser una latitud,longitud o una dirección con formato de consulta. Si es una string de consulta que muestra más de un resultado, se seleccionará el primer resultado. Si el valor se deja en blanco, se usará la ubicación actual del usuario.
  • daddr: establece el punto de llegada para las búsquedas de instrucciones sobre cómo llegar. Tiene el mismo formato y comportamiento que saddr.
  • directionsmode: Método de transporte. Se puede configurar en driving, transit, bicycling o walking.

La URL de ejemplo muestra las indicaciones de tránsito entre Google NYC y el Aeropuerto JFK:

comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit

Cómo llegar en transporte público

Estos son algunos ejemplos adicionales:

comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA&center=37.422185,-122.083898&zoom=10
comgooglemaps://?saddr=2025+Garcia+Ave,+Mountain+View,+CA,+USA&daddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA,+United+States&center=37.423725,-122.0877&directionsmode=walking&zoom=17

Cómo especificar una URL de devolución de llamada

Si deseas especificar una URL de devolución de llamada, debes usar el esquema de URL comgooglemaps-x-callback://. Este esquema cumple con la especificación x-callback-url. Cuando llamas a la app de Google Maps para iOS con este esquema, la app muestra un botón en la parte superior de la pantalla. Cuando se presiona este botón, se emite una devolución de llamada a una URL que especificaste.

Las solicitudes a comgooglemaps-x-callback:// deben tener el siguiente formato:

comgooglemaps-x-callback://?parameters

Parámetros

El esquema de URL x-callback acepta los mismos parámetros que el esquema de URL comgooglemaps://, con los siguientes parámetros adicionales. Ambos parámetros son obligatorios.

  • x-source: el nombre de la aplicación que envía la solicitud de devolución de llamada x. Se prefieren los nombres cortos.
  • x-success: Es la URL a la que se llamará cuando se complete. A menudo, será un esquema de URL para tu propia app, lo que permitirá a los usuarios volver a la aplicación original.

Ten en cuenta que tu app deberá registrar su propio esquema de URL para que pueda responder a la URL de devolución de llamada.

  1. Asegúrate de que tu aplicación haya registrado un esquema de URL que pueda responder a la solicitud de devolución de llamada.
  2. Pasa la etiqueta del botón de devolución de llamada en el parámetro x-source.
  3. Pasa la URL de devolución de llamada en el parámetro x-success.

En el siguiente ejemplo, se iniciará la app de Google Maps para iOS y se mostrará un mapa centrado en Nueva York. La aplicación también mostrará un botón con la etiqueta "SourceApp". Cuando se haga clic en el botón “SourceApp”, la app de Google Maps para iOS emitirá una devolución de llamada a un esquema de URL ficticio, sourceapp://?resume=true.

comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
   &x-success=sourceapp://?resume=true
   &x-source=SourceApp

Al igual que con el esquema de URL comgooglemaps://, primero debes verificar que la app de Google Maps para iOS esté disponible en el dispositivo y sea compatible con el esquema de URL de devolución de llamada x. Tu app puede verificar que el esquema de URL esté disponible con el siguiente código:

Swift

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)

Objective‑C

[[UIApplication sharedApplication] canOpenURL:
   [NSURL URLWithString:@"comgooglemaps-x-callback://"]];

Este es un ejemplo de una URL que permite a los usuarios volver a una app después de buscar un postre.

comgooglemaps-x-callback://?q=dessert&center=37.759748,-122.427135
   &x-success=sourceapp://?resume=true
   &x-source=Nom+Nom

Cómo agregar la navegación a tu app

Iniciar la app de Google Maps para iOS con una solicitud de instrucciones sobre cómo llegar es una forma sencilla de brindar a tus usuarios acceso a navegación paso a paso desde tu app. Puedes usar los esquemas de URL comgooglemaps:// o comgooglemaps-x-callback://.

En este fragmento de código, se muestra cómo usar el esquema comgooglemaps-x-callback:// para solicitar instrucciones sobre cómo llegar y, luego, volver a tu app cuando el usuario esté listo. El código hará lo siguiente:

  1. Verifica que el esquema de URL comgooglemaps-x-callback:// esté disponible.
  2. Inicia la app de Google Maps para iOS y solicita instrucciones sobre cómo llegar al Aeropuerto JFK de la ciudad de Nueva York. Deja en blanco la dirección de inicio para solicitar instrucciones sobre cómo llegar desde la ubicación actual del usuario.
  3. Agrega un botón con la etiqueta “AirApp” a la app de Google Maps para iOS. El parámetro x-source define la etiqueta del botón.
  4. Llama al esquema de URL ficticia, sourceapp://, cuando los usuarios hagan clic en el botón Atrás.

Swift

let testURL = URL(string: "comgooglemaps-x-callback://")!
if UIApplication.shared.canOpenURL(testURL) {
  let directionsRequest = "comgooglemaps-x-callback://" +
    "?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
    "&x-success=sourceapp://?resume=true&x-source=AirApp"

  let directionsURL = URL(string: directionsRequest)!
  UIApplication.shared.openURL(directionsURL)
} else {
  NSLog("Can't use comgooglemaps-x-callback:// on this device.")
}

Objective‑C

NSURL *testURL = [NSURL URLWithString:@"comgooglemaps-x-callback://"];
if ([[UIApplication sharedApplication] canOpenURL:testURL]) {
  NSString *directionsRequest = @"comgooglemaps-x-callback://" +
      @"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
      @"&x-success=sourceapp://?resume=true&x-source=AirApp";
  NSURL *directionsURL = [NSURL URLWithString:directionsRequest];
  [[UIApplication sharedApplication] openURL:directionsURL];
} else {
  NSLog(@"Can't use comgooglemaps-x-callback:// on this device.");
}

Iniciar la aplicación de Google Maps para iOS desde una URL de escritorio de Google Maps

Si tu app tiene acceso a una URL de Google Maps preexistente, como en una página web o en una base de datos, puedes usar este esquema para abrir la URL en la app de Google Maps para iOS, de modo que puedas ofrecer a tus usuarios la mejor experiencia nativa.

  1. Reemplaza el esquema http:// o https:// con comgooglemapsurl://.
  2. Si deseas usar una devolución de llamada, incluye los parámetros x-source y x-success. Este esquema cumple con la especificación x-callback-url.

Formatos de URL de Google Maps admitidos

El esquema comgooglemapsurl:// admite URL que coinciden con esta expresión regular, en las que {TLD} hace referencia a cualquier dominio de país de nivel superior válido. Se agregan saltos de línea para brindar mayor claridad:

(http(s?)://)?
((maps\.google\.{TLD}/)|
 ((www\.)?google\.{TLD}/maps/)|
 (goo.gl/maps/))
.*

Comprueba la disponibilidad de la app de Google Maps

Primero, verifica que la app de Google Maps para iOS esté disponible en el dispositivo y sea compatible con el esquema de URL:

Swift

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)

Objective‑C

[[UIApplication sharedApplication] canOpenURL:
   [NSURL URLWithString:@"comgooglemapsurl://"]];

Ejemplos

Ejemplo de una URL genérica de Google Maps:

URL original de Google Maps:

https://www.google.com/maps/preview/@42.585444,13.007813,6z

Uso del esquema de direcciones URL:

comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z

Ejemplo de una URL genérica de Google Maps:

URL original de Google Maps:

https://maps.google.com/?q=@37.3161,-122.1836

Uso del esquema de direcciones URL:

comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836

Ejemplo de solicitud de instrucciones sobre cómo llegar a la torre de Tokio con x-callback:

URL original de Google Maps:

http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1

En el siguiente ejemplo, se iniciará la app de Google Maps para iOS y se mostrará un mapa con instrucciones sobre cómo llegar a la torre de Tokio, tal como se especifica en la URL original de Google Maps (arriba). La app también mostrará un botón con la etiqueta "SourceApp". Cuando se haga clic en el botón “SourceApp”, la app de Google Maps para iOS emitirá una devolución de llamada a un esquema de URL ficticio, sourceapp://?resume=true.

comgooglemapsurl://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
    &x-source=SourceApp
    &x-success=sourceapp://?resume=true