Schema URL di Google Maps per iOS

Sui dispositivi con iOS 9 e versioni successive, puoi utilizzare i link universali per avviare Google Maps quando hai un URL di Google Maps.

Puoi utilizzare lo schema URL di Google Maps per avviare l'app Google Maps per iOS ed eseguire ricerche, richiedere indicazioni stradali e visualizzare le visualizzazioni della mappa. Quando avvii Google Maps, l'identificatore del pacchetto viene inviato automaticamente nell'ambito della richiesta.

Non è necessaria una chiave API Google per utilizzare lo schema URL di Google Maps.

Google Maps per iOS supporta i link universali sui dispositivi con iOS 9 o versioni successive.

Se il tuo URL corrisponde alla seguente espressione regolare e sul dispositivo è installato iOS 9 o versioni successive, ti consigliamo di utilizzare direttamente il metodo openURL:.

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

Ad esempio,

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

Panoramica

Uno schema URL ti consente di avviare un'applicazione iOS nativa da un'altra app per iOS o da un'applicazione web. Nell'URL puoi impostare le opzioni che verranno passate all'applicazione avviata. L'app Google Maps per iOS supporta i seguenti schemi URL:

  • comgooglemaps:// e comgooglemaps-x-callback://: questi schemi consentono di avviare l'app Google Maps per iOS ed eseguire una di diverse azioni:

    • Visualizza una mappa in una posizione e con un livello di zoom specificati.
    • Cercare località o luoghi e visualizzarli su una mappa.
    • Richiedi indicazioni stradali da un luogo all'altro. È possibile restituire indicazioni per quattro modalità di trasporto: in auto, a piedi, in bicicletta e con il trasporto pubblico.
    • Aggiungi la navigazione alla tua app.
    • In iOS 8, esegui un callback al termine dell'app utilizzando comgooglemaps-x-callback://. I richiami vengono spesso utilizzati per far tornare un utente all'app che ha aperto inizialmente Google Maps per iOS. Tieni presente che su iOS 9 il sistema fornisce automaticamente un link "Torna a" nell'angolo a sinistra della barra di stato.
  • comgooglemapsurl://: questo schema ti consente di avviare l'app Google Maps per iOS utilizzando un URL derivato dal sito web Google Maps per computer. Ciò significa che puoi offrire ai tuoi utenti un'esperienza mobile nativa anziché semplicemente caricare il sito web di Google Maps.

    • L'URL originale può essere per maps.google.com o per google.com/maps oppure utilizzare qualsiasi dominio di primo livello del paese valido anziché com. Puoi anche passare gli URL di reindirizzamento goo.gl/maps.
    • Puoi emettere un callback utilizzando i parametri x-source e x-success con lo schema URL comgooglemapsurl://.

Avvio dell'app Google Maps per iOS ed esecuzione di una funzione specifica

Per avviare l'app Google Maps per iOS ed eventualmente eseguire una delle funzioni supportate, utilizza uno schema URL del seguente tipo:

comgooglemaps://?parameters

oppure:

comgooglemaps-x-callback://?parameters

I parametri sono descritti in dettaglio più avanti in questo documento.

Verificare la disponibilità dell'app Google Maps sul dispositivo

Prima di presentare uno di questi URL a un utente nella tua app, devi prima verificare che l'applicazione sia installata. L'app può verificare che lo schema URL sia disponibile con il seguente codice:

Swift

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

Objective-C

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

Ad esempio, per visualizzare una mappa di Central Park a New York, puoi utilizzare il seguente codice:

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

Visualizzazione di una mappa

Utilizza lo schema URL per visualizzare la mappa a un livello di zoom e in una posizione specificati. Puoi anche sovrapporre altre visualizzazioni sulla mappa o visualizzare le immagini di Street View.

Parametri

Tutti i parametri descritti di seguito sono facoltativi. Se non vengono impostati parametri, lo schema URL aprirà l'app Google Maps per iOS.

  • center: il punto centrale dell'area visibile della mappa. Formattato come stringa di latitude,longitude separata da virgole.
  • mapmode: imposta il tipo di mappa da mostrare. Può essere impostato su: standard o streetview. Se non viene specificato, verranno utilizzate le impostazioni dell'applicazione corrente.
  • views: attiva/disattiva visualizzazioni specifiche. Può essere impostato su: satellite, traffic o transit. È possibile impostare più valori utilizzando una virgola come delimitatore. Se il parametro non viene specificato con un valore, verranno cancellate tutte le visualizzazioni.
  • zoom: specifica il livello di zoom della mappa.

Questo URL di esempio mostra la mappa centrata su New York con livello di zoom 14 e la visualizzazione del traffico attivata:

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

Mappa del traffico di New York

Ecco alcuni esempi aggiuntivi:

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

Utilizza questo schema per visualizzare le query di ricerca in una posizione del viewport specificata.

Parametri

Oltre ai parametri utilizzati per visualizzare una mappa, la Ricerca supporta il parametro q.

  • q: la stringa di query per la ricerca.

Questo URL di esempio per la ricerca di "Pizza" nelle vicinanze della località specificata:

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

Pizza nelle vicinanze

Ecco alcuni esempi aggiuntivi:

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

Visualizzazione delle indicazioni stradali

Utilizza questo schema per richiedere e visualizzare indicazioni stradali tra due località. Puoi anche specificare la modalità di trasporto.

Parametri

  • saddr: imposta il punto di partenza per le ricerche di indicazioni stradali. Può essere una latitudine,una longitudine o un indirizzo formato per query. Se si tratta di una stringa di query che restituisce più di un risultato, verrà selezionato il primo. Se il valore viene lasciato vuoto, verrà utilizzata la posizione corrente dell'utente.
  • daddr: imposta il punto di arrivo per le ricerche di indicazioni stradali. Ha lo stesso formato e comportamento di saddr.
  • directionsmode: metodo di trasporto. Può essere impostato su: driving, transit, bicycling o walking.

L'URL di esempio mostra le indicazioni per i trasporti pubblici tra Google NYC e l'aeroporto JFK:

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

Indicazioni stradali con mezzi pubblici

Ecco alcuni esempi aggiuntivi:

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

Specifica di un URL di callback

Se vuoi specificare un URL di callback, devi utilizzare lo schema URL comgooglemaps-x-callback://. Questo schema è conforme alla specifica x-callback-url. Quando chiami l'app Google Maps per iOS con questo schema, l'app mostra un pulsante nella parte superiore dello schermo. Se tocchi questo pulsante, verrà inviato un callback a un URL che hai specificato.

Le richieste all'comgooglemaps-x-callback:// devono avere il seguente formato:

comgooglemaps-x-callback://?parameters

Parametri

Lo schema URL x-callback accetta gli stessi parametri dello schema URL comgooglemaps://, con i seguenti parametri aggiuntivi. Entrambi i parametri sono obbligatori.

  • x-source: il nome dell'applicazione che invia la richiesta x-callback. Sono preferibili i nomi brevi.
  • x-success: l'URL da chiamare al termine. Spesso si tratta di uno schema URL per la tua app, che consente agli utenti di tornare all'app originale.

Tieni presente che l'app dovrà registrare il proprio schema URL in modo da poter rispondere all'URL di callback.

  1. Assicurati che la tua applicazione abbia registrato uno schema URL che possa rispondere alla richiesta di callback.
  2. Passa l'etichetta per il pulsante di callback nel parametro x-source.
  3. Passa l'URL di callback nel parametro x-success.

L'esempio seguente avvia l'app Google Maps per iOS e mostra una mappa centrata su New York. L'app mostrerà anche un pulsante denominato "SourceApp". Quando viene fatto clic sul pulsante "App sorgente", l'app Google Maps per iOS emette un callback a uno schema URL fittizio, sourceapp://?resume=true.

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

Come per lo schema URL comgooglemaps://, devi prima verificare che l'app Google Maps per iOS sia disponibile sul dispositivo e supporti lo schema URL x-callback. L'app può verificare che lo schema URL sia disponibile con il seguente codice:

Swift

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

Objective-C

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

Questo è un esempio di URL che consente agli utenti di tornare a un'app dopo aver cercato un dessert.

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

Aggiungere la navigazione all'app

Avviare l'app Google Maps per iOS con una richiesta di indicazioni stradali è un modo semplice per consentire agli utenti di accedere alla navigazione passo passo dalla tua app. Puoi utilizzare gli schemi URL comgooglemaps:// o comgooglemaps-x-callback://.

Questo snippet di codice mostra come utilizzare lo schema comgooglemaps-x-callback:// per richiedere indicazioni stradali e poi tornare all'app quando l'utente è pronto. Il codice eseguirà le seguenti operazioni:

  1. Verifica che lo schema dell'URL comgooglemaps-x-callback:// sia disponibile.
  2. Avvia l'app Google Maps per iOS e richiedi indicazioni stradali per l'aeroporto JFK di New York. Lascia vuoto l'indirizzo di partenza per richiedere indicazioni stradali dalla posizione corrente dell'utente.
  3. Aggiungi un pulsante denominato "AirApp" all'app Google Maps per iOS. L'etichetta del pulsante è definita dal parametro x-source.
  4. Chiama lo schema URL fittizio, sourceapp://, quando gli utenti fanno clic sul pulsante Indietro.

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

Avvio dell'app Google Maps per iOS da un URL di Google Maps per computer

Se la tua app ha accesso a un URL di Google Maps preesistente, ad esempio su una pagina web o in un database, puoi utilizzare questo schema per aprire l'URL nell'app Google Maps per iOS, offrendo così ai tuoi utenti la migliore esperienza nativa.

  1. Sostituisci lo schema http:// o https:// con comgooglemapsurl://.
  2. Se vuoi utilizzare un callback, includi i parametri x-source e x-success. Questo schema è conforme alla specifica x-callback-url.

Formati URL di Google Maps supportati

Lo schema comgooglemapsurl:// supporta gli URL che corrispondono a questa expressione regolare, dove {TLD} fa riferimento a qualsiasi dominio di primo livello del paese valido. I paragrafi sono stati aggiunti per maggiore chiarezza:

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

Controllo della disponibilità dell'app Google Maps

Innanzitutto, verifica che l'app Google Maps per iOS sia disponibile sul dispositivo e supporti lo schema URL:

Swift

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

Objective-C

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

Esempi

Esempio di URL generico di Google Maps:

URL originale di Google Maps:

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

Utilizzo dello schema dell'URL:

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

Esempio di URL generico di Google Maps:

URL originale di Google Maps:

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

Utilizzo dello schema dell'URL:

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

Esempio di richiesta di indicazioni stradali per la Tokyo Tower con x-callback:

URL originale di 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

Nell'esempio seguente viene avviata l'app Google Maps per iOS e viene visualizzata una mappa con le indicazioni stradali per la Tokyo Tower, come specificato nell'URL originale di Google Maps (sopra). L'app mostrerà anche un pulsante contrassegnato come "SourceApp". Quando si fa clic sul pulsante "App sorgente", l'app Google Maps per iOS effettuerà un callback a uno schema URL fittizio, 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