Schema URL di Google Maps per iOS

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

Puoi utilizzare lo schema URL di Google Maps per lanciare l'app Google Maps per iOS ed eseguire ricerche, ricevere richieste di indicazioni stradali e visualizzare le visualizzazioni della mappa. Quando avvii Google Maps, l'identificatore pacchetto 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 sui dispositivi con iOS 9 o versioni successive.

Se il tuo URL corrisponde alla seguente espressione regolare e il dispositivo esegue iOS 9 o versioni successive, puoi utilizzare il metodo openURL: direttamente.

(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 nativa per iOS da un'altra app per iOS o da 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 lanciare l'app Google Maps per iOS ed eseguire una delle seguenti azioni:

    • Visualizza una mappa in una posizione e un livello di zoom specificati.
    • Cerca località o luoghi e visualizzali su una mappa.
    • Richiedere 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.
    • Tramite iOS 8, emetti un callback quando l'app è stata completata, utilizzando comgooglemaps-x-callback://. I callback vengono spesso utilizzati per reindirizzare un utente all'app che in origine ha 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 lanciare l'app Google Maps per iOS utilizzando un URL derivato dal sito web per desktop di Google Maps. Questo significa che puoi offrire ai tuoi utenti un'esperienza nativa sui dispositivi mobili anziché caricare semplicemente il sito web di Google Maps.

    • L'URL originale può essere maps.google.com oppure google.com/maps oppure l'utilizzo di qualsiasi dominio nazionale di primo livello valido anziché com. Puoi anche trasmettere goo.gl/maps URL di reindirizzamento.
    • 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 eseguire facoltativamente una delle funzioni supportate, utilizza uno schema URL nel seguente formato:

comgooglemaps://?parameters

oppure:

comgooglemaps-x-callback://?parameters

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

Controllo 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. L'app può verificare che lo schema dell'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 dell'URL per visualizzare la mappa a un livello di zoom e una posizione specifici. Puoi anche sovrapporre altre visualizzazioni alla mappa o visualizzare immagini di Street View.

Parametri

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

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

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

Mappa del traffico per New York

Altri esempi sono:

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 specifica posizione del viewport.

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 cercare "pizza" intorno alla località specificata:

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

Pizzerie nelle vicinanze

Altri esempi sono:

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 posizioni. Puoi anche specificare la modalità di trasporto.

Parametri

  • saddr: imposta il punto di partenza per la ricerca di indicazioni stradali. Può essere la latitudine,la longitudine o l'indirizzo formattato. 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 corrente dell'utente.
  • daddr: imposta il punto finale 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.

Nell'URL di esempio vengono visualizzate le indicazioni per il trasporto pubblico 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

Altri esempi sono:

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

Specificare un URL di callback

Se vuoi specificare un URL di callback, devi utilizzare lo schema dell'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 visualizza un pulsante nella parte superiore dello schermo. Toccando questo pulsante verrà restituito un URL che hai specificato.

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

comgooglemaps-x-callback://?parameters

Parametri

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

  • x-source: il nome dell'applicazione che invia la richiesta di x-callback. È preferibile utilizzare nomi brevi.
  • x-success: l'URL da chiamare al termine. Spesso si tratta di uno schema URL per la tua app, che permette 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 la tua applicazione abbia registrato uno schema di URL in grado di rispondere alla richiesta di callback.
  2. Inserisci l'etichetta del pulsante di callback nel parametro x-source.
  3. Passa l'URL di callback nel parametro x-success.

L'esempio seguente lancerà l'app Google Maps per iOS e mostrerà una mappa centrata su New York. Nell'app verrà visualizzato anche un pulsante con l'etichetta "SourceApp". Quando viene fatto 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 di comgooglemaps://, devi prima verificare che l'app Google Maps per iOS sia disponibile sul dispositivo e supporti lo schema di URL x-callback. L'app può verificare che lo schema dell'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 il 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

L'avvio di 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://.

Lo snippet di codice mostra come utilizzare lo schema comgooglemaps-x-callback:// per richiedere le indicazioni stradali, per poi tornare all'app quando l'utente è pronto. Il codice esegue queste operazioni:

  1. Verifica che lo schema dell'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 avvio per richiedere le indicazioni stradali dalla posizione corrente 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. 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 desktop di Google Maps

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 di URL di Google Maps supportati

Lo schema comgooglemapsurl:// supporta gli URL che corrispondono all'espressione regolare, dove {TLD} si riferisce a qualsiasi dominio nazionale di primo livello valido. Per maggiore chiarezza vengono aggiunte le interruzioni di riga:

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

Verificare la disponibilità dell'app Google Maps

Innanzitutto, verifica che l'app Google Maps per iOS sia disponibile sul dispositivo e supporti lo schema dell'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 Google Maps originale:

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

Utilizzando lo schema dell'URL:

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

Esempio di URL generico di Google Maps:

URL Google Maps originale:

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

Utilizzando lo schema dell'URL:

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

Esempio di richiesta di indicazioni stradali per la Tokyo Tower con il richiamo x:

URL Google Maps originale:

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 avvierà l'app Google Maps per iOS e mostrerà una mappa con le indicazioni stradali per la Tokyo Tower, come specificato nell'URL originale di Google Maps (sopra). Nell'app verrà inoltre visualizzato un pulsante etichettato "SourceApp". Quando viene fatto clic sul pulsante "SourceApp", l'app Google Maps per iOS esegue il 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