Schema URL di Google Maps per iOS

Sui dispositivi che eseguono iOS 9 e versioni successive, puoi utilizzare i link universali per avviare Google Maps se disponi di un URL di Google Maps.

Puoi utilizzare lo schema URL di Google Maps per avviare l'app Google Maps per iOS ed eseguire ricerche, ricevere richieste di indicazioni stradali e visualizzare le visualizzazioni delle mappe. Quando avvii Google Maps, l'identificatore del bundle viene inviato automaticamente come parte della richiesta.

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

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

Se l'URL corrisponde alla seguente espressione regolare e il dispositivo esegue 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 un'applicazione web. Puoi impostare le opzioni nell'URL che verranno trasmesse all'applicazione avviata. L'app Google Maps per iOS supporta i seguenti schemi di URL:

  • comgooglemaps:// e comgooglemaps-x-callback://. Questi schemi ti consentono di avviare l'app Google Maps per iOS ed eseguire una delle seguenti azioni:

    • Consente di visualizzare una mappa con una posizione specifica e un livello di zoom specifico.
    • Cercare luoghi o località e visualizzarli su una mappa.
    • Richiedi indicazioni stradali da una località a un'altra. È possibile restituire le indicazioni stradali per quattro modalità di trasporto: in auto, a piedi, in bicicletta e con il trasporto pubblico.
    • Aggiungi la navigazione all'app.
    • Con iOS 8, puoi eseguire un callback quando l'app è stata completata utilizzando comgooglemaps-x-callback://. I callback vengono spesso utilizzati per riportare un utente all'app che ha originariamente aperto Google Maps per iOS. Tieni presente che su iOS 9, il sistema fornisce automaticamente un link "Torna a" nell'angolo sinistro della barra di stato.
  • comgooglemapsurl:// - Questo schema consente di avviare l'app Google Maps per iOS utilizzando un URL derivato dal sito web di Google Maps per computer. Ciò significa che puoi offrire ai tuoi utenti un'esperienza nativa per dispositivi mobili anziché semplicemente caricare il sito web di Google Maps.

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

Avviare l'app Google Maps per iOS e svolgere una funzione specifica

Per avviare l'app Google Maps per iOS e, facoltativamente, eseguire una delle funzioni supportate, utilizza uno schema URL con il seguente formato:

comgooglemaps://?parameters

oppure:

comgooglemaps-x-callback://?parameters

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

Verifica della disponibilità dell'app Google Maps sul dispositivo

Prima di presentare uno di questi URL a un utente nella tua app, devi verificare che l'applicazione sia installata. La tua 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 una posizione specifici. Puoi anche sovrapporre altre visualizzazioni alla mappa o mostrare immagini di Street View.

Parametri

Tutti i parametri descritti di seguito sono facoltativi. Se non viene impostato alcun parametro, lo schema URL avvia l'app Google Maps per iOS.

  • center: il punto centrale della visualizzazione della mappa. Formattata come stringa di latitude,longitude separata da virgole.
  • mapmode: consente di impostare il tipo di mappa visualizzato. Può essere impostato su standard o streetview. Se non specificato, verranno utilizzate le impostazioni attuali dell'applicazione.
  • views: attiva/disattiva visualizzazioni specifiche. Può essere impostata su satellite, traffic o transit. È possibile impostare più valori utilizzando un separatore di virgole. Se il parametro viene specificato senza alcun 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 allo zoom 14 con la visualizzazione del traffico su:

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

Mappa del traffico di New York

Ecco alcuni esempi:

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 dell'area visibile 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" intorno alla località specificata:

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

Pizzerie nelle vicinanze

Ecco alcuni esempi:

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

L'URL di esempio mostra le indicazioni stradali per il trasporto pubblico da 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:

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, nella parte superiore dello schermo viene visualizzato un pulsante. Se tocchi questo pulsante, viene richiamato l'URL che hai specificato.

Le richieste inviate a comgooglemaps-x-callback:// devono essere nel formato:

comgooglemaps-x-callback://?parameters

Parametri

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

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

Tieni presente che la tua app dovrà registrare il proprio schema URL in modo che possa rispondere all'URL di callback.

  1. Assicurati che l'applicazione abbia registrato uno schema URL in grado di rispondere alla richiesta di callback.
  2. Passa l'etichetta per il pulsante di callback nel parametro x-source.
  3. Trasmetti 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 con l'etichetta "SourceApp". Quando l'utente fa clic sul pulsante "SourceApp", l'app Google Maps per iOS emette un callback per 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 innanzitutto 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 un URL che consente agli utenti di tornare a un'app dopo aver cercato dessert.

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

Aggiunta della navigazione all'app

L'avvio dell'app Google Maps per iOS con una richiesta di indicazioni stradali è un modo semplice per consentire agli utenti di accedere alla navigazione passo passo dall'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 tornare alla tua app quando l'utente è pronto. Il codice:

  1. Verifica che lo schema URL comgooglemaps-x-callback:// sia disponibile.
  2. Avvia l'app Google Maps per iOS e richiedi le indicazioni stradali per l'aeroporto JFK di New York. Lascia vuoto l'indirizzo di partenza per richiedere indicazioni stradali dalla posizione attuale dell'utente.
  3. Aggiungi un pulsante con l'etichetta "AirApp" all'app Google Maps per iOS. L'etichetta del pulsante è definita dal parametro x-source.
  4. Richiama lo schema URL fittizio sourceapp:// quando l'utente fa 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 desktop

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, in modo da offrire agli 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 di URL di Google Maps supportati

Lo schema comgooglemapsurl:// supporta gli URL che corrispondono a questa espressione regolare, dove {TLD} si riferisce a qualsiasi dominio del paese di primo livello valido. Le interruzioni di riga vengono aggiunte per maggiore chiarezza:

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

Verifica 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

L'esempio seguente avvia l'app Google Maps per iOS e mostra 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 con l'etichetta "SourceApp". Quando l'utente fa clic sul pulsante "SourceApp", l'app Google Maps per iOS emette un callback per 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