Esquema de URL de Google Maps para iOS

En dispositivos con iOS 9 y versiones posteriores, puedes usar vínculos universales para lanzar Maps cuando tienes una URL de Google Maps.

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

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

Google Maps para iOS es compatible Campaña universal Vínculos en dispositivos con iOS 9 o versiones posteriores

Si la URL coincide con la siguiente expresión regular y el dispositivo se está ejecutando Con iOS 9 o versiones posteriores, te recomendamos que uses directamente el método openURL:.

(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 app para iOS. o una aplicación web. En la URL, puedes establecer opciones que se pasarán al aplicación iniciada. La app de Google Maps para iOS admite la siguiente URL esquemas:

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

    • Muestra un mapa en una ubicación y con un nivel de zoom especificados.
    • Busca ubicaciones o lugares y muéstralos en un mapa.
    • Solicita instrucciones sobre cómo llegar de una ubicación a otra. Se pueden mostrar instrucciones sobre cómo llegar para cuatro medios de transporte: en automóvil, a pie, en bicicleta y público transporte público.
    • Agrega navegación a tu app.
    • A través de iOS 8, realizar una devolución de llamada cuando la aplicación se haya completado, utilizando comgooglemaps-x-callback:// Las devoluciones de llamada se usan a menudo para Regresar a un usuario a la aplicación que originalmente abrió Google Maps para iOS. Ten en cuenta que en iOS 9, el sistema proporciona automáticamente una página "Volver a" en la esquina izquierda de la barra de estado.
  • comgooglemapsurl://: Este esquema te permite iniciar la app de Google Maps. para iOS mediante una URL derivada del sitio web de Google Maps para computadoras de escritorio. Esto significa que puede ofrecer a sus 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 URLs de redireccionamiento goo.gl/maps.
    • Puedes emitir una devolución de llamada con x-source y x-success. parámetros con el esquema de URL comgooglemapsurl://.

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

Para iniciar la aplicación de Google Maps para iOS y, opcionalmente, realizar una de las funciones compatibles, usa un esquema de URL con el siguiente formato:

comgooglemaps://?parameters

o:

comgooglemaps-x-callback://?parameters

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

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

Antes de presentar una de estas URLs a un usuario en tu app, primero debes verificar que la aplicación esté instalada. Tu aplicación puede verificar que la 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 del Central Park en Nueva York, puedes usar la 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 El esquema de URL iniciará la app de Google Maps para iOS.

  • center: Es el punto central del viewport del mapa. Con formato de coma una cadena separada de latitude,longitude.
  • mapmode: Establece el tipo de mapa que se muestra. Se puede establecer en standard o streetview Si no se especifica, se aplicará la configuración actual de la aplicación que se usan.
  • views: Activa o desactiva vistas específicas. Se puede establecer en: satellite, traffic o transit. Se pueden establecer varios valores usando una separador de coma. Si el parámetro se especifica sin valor, borrar todas las vistas.
  • zoom: Especifica el nivel de zoom del mapa.

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

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 q. parámetro.

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

Esta URL de ejemplo para buscar "Pizza" alrededor de 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

Visualización de 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 y longitud,o una dirección con formato de consulta. Si se trata de una consulta cadena que devuelve más de un resultado, el primer resultado será seleccionado. Si el valor se deja en blanco, entonces la ubicación actual del usuario que se usará.
  • daddr: Establece el punto de destino para las búsquedas de instrucciones sobre cómo llegar. Tiene el elemento mismo formato y comportamiento que saddr.
  • directionsmode: Medio de transporte. Se puede establecer en: driving, transit, bicycling o walking.

La URL de ejemplo muestra rutas en transporte público 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 quieres 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 mostrará un botón en la parte superior de la pantalla. Al presionar este botón, se realizará una devolución de llamada a una URL que que hayas especificado.

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

comgooglemaps-x-callback://?parameters

Parámetros

El esquema de URL de devolución de llamada X acepta los mismos parámetros que comgooglemaps://. Esquema de URL, con los siguientes parámetros adicionales. Ambos parámetros son como en los productos necesarios.

  • x-source: Es el nombre de la aplicación que envía la devolución de llamada x. para cada solicitud. Se prefieren los nombres cortos.
  • x-success: Es la URL a la que se debe llamar cuando se completa. A menudo, esto Debe ser un esquema de URL para tu propia app, lo cual permite que los usuarios regresen a la versión original. y mantener la integridad de su aplicación.

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

  1. Asegúrate de que la 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 app también mostrará un botón con la etiqueta “SourceApp”. Cuando la carpeta "SourceApp" se hace clic en el botón, la app de Google Maps para iOS generará 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 lo siguiente: la aplicación de Google Maps para iOS está disponible en el dispositivo y admite el esquema de URL x-devolución de llamada. 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 regresar a una aplicación después de buscar postre.

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

Cómo agregar navegación a tu app

Lanzar la app de Google Maps para iOS con una solicitud de instrucciones sobre cómo llegar es una manera fácil de brindarles a sus usuarios acceso a la navegación paso a paso desde su aplicación. 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, regresar 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 en Nueva York. Deja la dirección de partida en blanco para solicitar instrucciones sobre cómo llegar a la ubicación actual del usuario.
  3. Agrega un botón con la etiqueta "AirApp" a la aplicación de Google Maps para iOS. El botón la etiqueta se define con el parámetro x-source.
  4. Llama al esquema de URL ficticio, 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.");
}

Lanzamiento de la app 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 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 y así ofrecerles a los usuarios la mejor experiencia nativa.

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

Formatos de URL admitidos en Google Maps

El esquema comgooglemapsurl:// admite URLs que coinciden con este estándar. expresión, donde {TLD} hace referencia a cualquier dominio de país de nivel superior válido. Línea se agregan para mayor claridad:

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

Cómo verificar la disponibilidad de la app de Google Maps

Primero, verifica que la app de Google Maps para iOS esté disponible en el dispositivo. admite 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 una devolución de llamada x:

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, según lo especificado en la URL original de Google Maps (arriba). La app también mostrará un botón con la etiqueta "SourceApp". Cuando la carpeta "SourceApp" se hace clic en el botón, 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