Schéma d'URL Google Maps pour iOS

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Sur les appareils équipés d'iOS 9 ou version ultérieure, vous pouvez utiliser Universal Links pour lancer Google Maps lorsque vous disposez d'une URL Google Maps.

Vous pouvez utiliser le schéma d'URL Google Maps pour lancer l'application Google Maps pour iOS et effectuer des recherches, obtenir des demandes d'itinéraire et afficher des vues de la carte. Lorsque vous lancez Google Maps, votre identifiant de groupe est automatiquement envoyé dans la requête.

Vous n'avez pas besoin d'une clé API Google pour utiliser le schéma d'URL Google Maps.

Google Maps pour iOS est compatible avec les liens universels sur les appareils équipés d'iOS 9 ou version ultérieure.

Si votre URL correspond à l'expression régulière suivante et que l'appareil exécute iOS 9 ou une version ultérieure, vous pouvez envisager d'utiliser la méthode openURL: directement.

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

Par exemple :

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"]];

Présentation

Un schéma d'URL vous permet de lancer une application iOS native à partir d'une autre application iOS ou d'une application Web. Vous pouvez définir des options dans l'URL qui sera transmise à l'application lancée. L'application Google Maps pour iOS accepte les schémas d'URL suivants:

  • comgooglemaps:// et comgooglemaps-x-callback:// : ces schémas vous permettent de lancer l'application Google Maps pour iOS et d'effectuer l'une des actions suivantes :

    • Afficher une carte à un point géographique et à un niveau de zoom donnés
    • rechercher des lieux ou des lieux, et les afficher sur une carte ;
    • Demandez un itinéraire d'un lieu à un autre. Les itinéraires peuvent être renvoyés pour quatre modes de transport: en voiture, à pied, à vélo et en transports en commun.
    • Ajoutez la navigation à votre application.
    • Avec iOS 8, émettez un rappel lorsque l'application est terminée, à l'aide de comgooglemaps-x-callback://. Les rappels sont souvent utilisés pour renvoyer un utilisateur vers l'application à l'origine de l'ouverture de Google Maps pour iOS. Sous iOS 9, le système fournit automatiquement un lien "Retour à" dans l'angle gauche de la barre d'état.
  • comgooglemapsurl:// - Ce schéma vous permet de lancer l'application Google Maps pour iOS à l'aide d'une URL dérivée du site Web Google Maps pour ordinateur. Vous pouvez ainsi offrir à vos utilisateurs une expérience mobile native plutôt que de simplement charger le site Web Google Maps.

    • L'URL d'origine peut être pour maps.google.com ou pour google.com/maps, ou utiliser n'importe quel domaine de pays de premier niveau valide au lieu de com. Vous pouvez également transmettre goo.gl/maps URL de redirection.
    • Vous pouvez émettre un rappel à l'aide des paramètres x-source et x-success avec le schéma d'URL comgooglemapsurl://.

Lancer l'application Google Maps pour iOS et exécuter une fonction spécifique

Pour lancer l'application Google Maps pour iOS et éventuellement exécuter l'une des fonctions compatibles, utilisez un schéma d'URL au format suivant:

comgooglemaps://?parameters

ou :

comgooglemaps-x-callback://?parameters

Les paramètres sont décrits en détail ci-après dans le présent document.

Vérifier la disponibilité de l'application Google Maps sur l'appareil

Avant de présenter l'une de ces URL à un utilisateur de votre application, vous devez d'abord vérifier que celle-ci est installée. Votre application peut vérifier que le schéma d'URL est disponible avec le code suivant:

Swift

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

Objective-C

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

Par exemple, pour afficher une carte de Central Park à New York, vous pouvez utiliser le code suivant:

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://");
}

Afficher une carte

Utilisez le modèle d'URL pour afficher la carte au niveau de zoom et à la position géographique spécifiés. Vous pouvez également superposer d'autres vues à votre carte ou afficher des images Street View.

Paramètres

Tous les paramètres suivants sont facultatifs. Si aucun paramètre n'est défini, le schéma d'URL lance l'application Google Maps pour iOS.

  • center: c'est le point central de la fenêtre d'affichage de la carte. Sous la forme d'une chaîne latitude,longitude séparée par des virgules.
  • mapmode: définit le type de carte affiché. Il peut être défini sur standard ou streetview. Si elle n'est pas spécifiée, les paramètres d'application actuels seront utilisés.
  • views : active ou désactive des vues spécifiques. Peut être défini sur satellite, traffic ou transit. Vous pouvez définir plusieurs valeurs à l'aide d'un séparateur de virgules. Si le paramètre est spécifié sans aucune valeur, toutes les vues seront effacées.
  • zoom: spécifie le niveau de zoom de la carte.

Cet exemple d'URL affiche la carte centrée sur New York au niveau de zoom 14 avec l'affichage du trafic activé:

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

Carte du trafic à New York

Voici quelques exemples supplémentaires:

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

Utilisez ce modèle pour afficher des requêtes de recherche pour le point géographique spécifié de la fenêtre d'affichage.

Paramètres

En plus des paramètres utilisés pour afficher une carte, la recherche accepte le paramètre q.

  • q: chaîne de requête de votre recherche.

Cet exemple d'URL pour rechercher "Pizza" autour du lieu spécifié:

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

Pizzeria à proximité

Voici quelques exemples supplémentaires:

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

Affichage de l'itinéraire

Utilisez ce modèle pour demander et afficher l'itinéraire entre deux points géographiques. Vous pouvez également préciser le mode de transport.

Paramètres

  • saddr: définit le point de départ des recherches d'itinéraire. Il peut s'agir d'une latitude,d'une longitude ou d'une adresse au format requête. S'il s'agit d'une chaîne de requête qui renvoie plusieurs résultats, le premier résultat est sélectionné. Si la valeur est vide, l'emplacement actuel de l'utilisateur sera utilisé.
  • daddr: définit le point de fin des recherches d'itinéraire. Il a le même format et le même comportement que saddr.
  • directionsmode: mode de transport. Il peut être défini sur driving, transit, bicycling ou walking.

L'exemple d'URL affiche l'itinéraire en transports en commun entre Google NYC et l'aéroport JFK:

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

Itinéraire en transports en commun

Voici quelques exemples supplémentaires:

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

Spécifier une URL de rappel

Si vous souhaitez spécifier une URL de rappel, vous devez utiliser le schéma d'URL comgooglemaps-x-callback://. Ce schéma respecte la spécification x-callback-url. Lorsque vous appelez l'application Google Maps pour iOS avec ce schéma, l'application affiche un bouton en haut de l'écran. Appuyez sur ce bouton pour envoyer un rappel vers une URL que vous avez spécifiée.

Les requêtes envoyées à comgooglemaps-x-callback:// doivent respecter le format suivant:

comgooglemaps-x-callback://?parameters

Paramètres

Le schéma d'URL x-callback accepte les mêmes paramètres que le schéma d'URL comgooglemaps://, avec les paramètres supplémentaires suivants. Ces deux paramètres sont obligatoires.

  • x-source : nom de l'application envoyant la requête de rappel x. Les noms courts sont à privilégier.
  • x-success : URL à appeler une fois l'opération terminée. Il s'agit souvent d'un schéma d'URL pour votre propre application, ce qui permet aux utilisateurs de revenir à l'application d'origine.

Notez que votre application doit enregistrer son propre schéma d'URL pour pouvoir répondre à l'URL de rappel.

  1. Assurez-vous que votre application a enregistré un schéma d'URL pouvant répondre à la requête de rappel.
  2. Transmettez l'étiquette du bouton de rappel dans le paramètre x-source.
  3. Transmettez l'URL de rappel dans le paramètre x-success.

L'exemple suivant permet de lancer l'application Google Maps pour iOS et d'afficher une carte centrée sur New York. L'application affichera également un bouton "SourceApp". Lorsque l'utilisateur clique sur le bouton "SourceApp", l'application Google Maps pour iOS émet un rappel à un schéma d'URL fictif, sourceapp://?resume=true.

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

Comme pour le schéma d'URL comgooglemaps://, vous devez d'abord vérifier que l'application Google Maps pour iOS est disponible sur l'appareil et qu'elle est compatible avec le schéma d'URL x-callback. Votre application peut vérifier que le schéma d'URL est disponible avec le code suivant:

Swift

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

Objective-C

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

Voici un exemple d'URL permettant aux utilisateurs de revenir à une application après avoir recherché un dessert.

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

Ajouter la navigation à votre appli

En lançant l'application Google Maps pour iOS avec une requête d'itinéraire, vous pouvez facilement permettre à vos utilisateurs d'accéder à la navigation détaillée depuis votre application. Vous pouvez utiliser les schémas d'URL comgooglemaps:// ou comgooglemaps-x-callback://.

Cet extrait de code montre comment utiliser le schéma comgooglemaps-x-callback:// pour demander un itinéraire, puis revenir à votre application lorsque l'utilisateur est prêt. Le code effectue les opérations suivantes:

  1. Vérifiez que le schéma d'URL comgooglemaps-x-callback:// est disponible.
  2. Lancez l'application Google Maps pour iOS et demandez l'itinéraire vers l'aéroport JFK de New York. Laissez le champ de l'adresse de départ vide pour demander l'itinéraire à partir de la position actuelle de l'utilisateur.
  3. Ajoutez un bouton "AirApp" à l'application Google Maps pour iOS. Le libellé du bouton est défini par le paramètre x-source.
  4. Appelez le schéma d'URL fictif sourceapp:// lorsque l'utilisateur clique sur le bouton "Retour".

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.");
}

Lancer l'application Google Maps pour iOS à partir d'une URL de bureau Google Maps

Si votre application a accès à une URL Google Maps préexistante, par exemple sur une page Web ou dans une base de données, vous pouvez utiliser ce schéma pour ouvrir l'URL dans l'application Google Maps pour iOS. Les utilisateurs bénéficieront ainsi de la meilleure expérience native possible.

  1. Remplacez le schéma http:// ou https:// par comgooglemapsurl://.
  2. Si vous souhaitez utiliser un rappel, incluez les paramètres x-source et x-success. Ce schéma respecte la spécification x-callback-url.

Formats d'URL Google Maps compatibles

Le schéma comgooglemapsurl:// accepte les URL qui correspondent à cette expression régulière, où {TLD} fait référence à un domaine de pays de premier niveau valide. Pour plus de clarté, les sauts de ligne sont ajoutés:

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

Vérifier la disponibilité de l'application Google Maps

Vérifiez tout d'abord que l'application Google Maps pour iOS est disponible sur l'appareil et qu'elle accepte le schéma d'URL:

Swift

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

Objective-C

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

Exemples

Exemple d'URL Google Maps générique:

URL Google Maps d'origine :

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

Avec le modèle d'URL :

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

Exemple d'URL Google Maps générique:

URL Google Maps d'origine :

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

Avec le modèle d'URL :

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

Exemple de demande d'itinéraire vers la tour de Tokyo avec x-callback:

URL Google Maps d'origine :

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

L'exemple suivant permet de lancer l'application Google Maps pour iOS et d'afficher une carte avec un itinéraire vers la tour de Tokyo, comme spécifié dans l'URL Google Maps d'origine (ci-dessus). L'application affichera également un bouton "SourceApp". Lorsque l'utilisateur clique sur le bouton "SourceApp", l'application Google Maps pour iOS envoie un rappel à un schéma d'URL fictif, 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