Schemat adresu URL w Mapach Google na iOS

Na urządzeniach z iOS 9 lub nowszym możesz użyć uniwersalnych linków, aby uruchomić Mapy Google, jeśli masz adres URL w Mapach Google.

Za pomocą schematu adresu URL Map Google możesz uruchamiać aplikację Mapy Google na iOS, przeprowadzać wyszukiwania, otrzymywać prośby o wskazówki dojazdu i wyświetlać mapy. Po uruchomieniu Map Google w żądaniu automatycznie wysyłany jest identyfikator pakietu.

Aby korzystać ze schematu adresu URL Map Google, nie potrzebujesz klucza interfejsu API Google.

Mapy Google na iOS obsługują uniwersalne linki na urządzeniach z iOS w wersji 9 lub nowszej.

Jeśli URL pasuje do poniższego wyrażenia regularnego, a na urządzeniu działa iOS 9 lub nowszy, możesz użyć metody openURL:.

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

Przykład:

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

Przegląd

Schemat adresu URL umożliwia uruchamianie natywnej aplikacji na iOS z poziomu innej aplikacji na iOS lub aplikacji internetowej. Możesz ustawić opcje w adresie URL, które będą przekazywane do uruchomionej aplikacji. Aplikacja Mapy Google na iOS obsługuje te schematy adresów URL:

  • comgooglemaps:// i comgooglemaps-x-callback:// – te schematy umożliwiają uruchomienie aplikacji Mapy Google na iOS i wykonanie jednej z kilku czynności:

    • Wyświetlaj mapę w określonej lokalizacji i powiększeniu.
    • Wyszukuj lokalizacje lub miejsca i wyświetlaj je na mapie.
    • Zapytanie o wskazówki dojazdu z jednego miejsca do drugiego. Wskazówki dojazdu mogą być zwracane w przypadku 4 środków transportu: samochodem, pieszo, rowerem i transportem publicznym.
    • Dodaj nawigację do aplikacji.
    • W systemie iOS 8 wysyłaj wywołanie zwrotne po zakończeniu aplikacji za pomocą polecenia comgooglemaps-x-callback://. Wywołania zwrotne są często stosowane w celu zwrócenia użytkownika do aplikacji, w której oryginalnie uruchomiono Mapy Google na iOS. Pamiętaj, że w iOS 9 system automatycznie wyświetla link „Powrót do” w lewym rogu paska stanu.
  • comgooglemapsurl:// – ten schemat umożliwia uruchamianie aplikacji Mapy Google na iOS przy użyciu adresu URL pobranego ze strony Map Google na komputery. Oznacza to, że zamiast ładować witrynę z Mapami Google, możesz zapewnić użytkownikom natywny dostęp do urządzeń mobilnych.

    • Pierwotny adres URL może prowadzić do maps.google.com lub google.com/maps albo używać dowolnej prawidłowej domeny krajowej najwyższego poziomu zamiast com. Możesz też przekazywać adresy URL przekierowań goo.gl/maps.
    • Możesz wykonać wywołanie zwrotne, używając parametrów x-source i x-success ze schematem adresu URL comgooglemapsurl://.

Wprowadzenie aplikacji Mapy Google na iOS i wykonanie określonej funkcji

Aby uruchomić aplikację Mapy Google na iOS i opcjonalnie wykonać jedną z obsługiwanych funkcji, użyj schematu adresu URL w tej formie:

comgooglemaps://?parameters

lub

comgooglemaps-x-callback://?parameters

Parametry zostały szczegółowo opisane w dalszej części tego dokumentu.

Sprawdzam dostępność aplikacji Mapy Google na urządzeniu

Zanim udostępnisz ten adres URL użytkownikowi w aplikacji, sprawdź, czy aplikacja jest zainstalowana. Aplikacja może sprawdzić, czy schemat adresu URL jest dostępny za pomocą tego kodu:

Swift

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

Objective-C

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

Aby na przykład wyświetlić mapę Central Parku w Nowym Jorku, możesz użyć tego kodu:

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

wyświetlanie mapy,

Używaj schematu adresu URL do wyświetlania mapy przy określonym powiększeniu i lokalizacji. Na mapę możesz też nałożyć inne widoki lub wyświetlać zdjęcia Street View.

Parametry

Wszystkie parametry podane poniżej są opcjonalne. Jeśli nie zostaną ustawione żadne parametry, schemat URL uruchomi aplikację Mapy Google na iOS.

  • center: jest to punkt środkowy widocznego obszaru mapy. Sformatowany jako ciąg znaków latitude,longitude rozdzielony przecinkami.
  • mapmode: określa rodzaj wyświetlanej mapy. Można ustawić wartość standard lub streetview. Jeśli nie podasz żadnej wartości, zostaną użyte bieżące ustawienia aplikacji.
  • views: włącza lub wyłącza określone widoki danych. Możesz ustawić wartość: satellite, traffic lub transit. Za pomocą separatora przecinków można ustawić wiele wartości. Jeśli parametr jest określony bez wartości, spowoduje to wyczyszczenie wszystkich widoków.
  • zoom: określa poziom powiększenia mapy.

Pod tym przykładowym adresem URL mapa jest wyśrodkowana na Nowym Jorku w zbliżeniu 14 i z włączonym widokiem natężenia ruchu:

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

Mapa drogowa Nowego Jorku

Kilka dodatkowych przykładów:

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

Ten schemat służy do wyświetlania wyszukiwanych haseł w określonej lokalizacji widocznego obszaru.

Parametry

Oprócz parametrów używanych do wyświetlania mapy wyszukiwarka obsługuje parametr q.

  • q: ciąg zapytania dla Twojego wyszukiwania.

Ten przykładowy URL do wyszukania hasła „pizza” w określonej lokalizacji:

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

Pizzeria w pobliżu

Kilka dodatkowych przykładów:

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

Wyświetlanie trasy

Zastosuj ten schemat, aby zażądać i wyświetlić wskazówki dojazdu między dwoma lokalizacjami. Możesz też określić środek transportu.

Parametry

  • saddr: określa punkt początkowy wyszukiwania wskazówek dojazdu. Może to być szerokość i długość geograficzna lub adres w formie zapytania. Jeśli jest to ciąg zapytania, który zwraca więcej niż 1 wynik, wybrany zostanie pierwszy wynik. Jeśli wartość pozostanie pusta, używana będzie bieżąca lokalizacja użytkownika.
  • daddr: ustawia punkt końcowy wyszukiwania wskazówek dojazdu. Ma taki sam format i zachowanie co właściwość saddr.
  • directionsmode: środek transportu. Można ustawić na: driving, transit, bicycling lub walking.

Przykładowy URL zawiera wskazówki dojazdu transportem publicznym między Google NYC a lotniskiem JFK:

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

Transport publiczny

Kilka dodatkowych przykładów:

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

Określanie adresu URL wywołania zwrotnego

Jeśli chcesz określić adres URL wywołania zwrotnego, musisz użyć schematu adresu URL comgooglemaps-x-callback://. Schemat ten jest zgodny ze specyfikacją x-callback-url. Wywołanie aplikacji Mapy Google na iOS za pomocą tego schematu powoduje wyświetlenie przycisku u góry ekranu. Kliknięcie tego przycisku spowoduje wysłanie wywołania zwrotnego do podanego adresu URL.

Prośby o dostęp do usługi comgooglemaps-x-callback:// muszą mieć następujący format:

comgooglemaps-x-callback://?parameters

Parametry

Schemat adresu URL wywołania zwrotnego x akceptuje te same parametry co schemat adresu URL comgooglemaps:// z poniższymi parametrami dodatkowymi. Oba parametry są wymagane.

  • x-source – nazwa aplikacji wysyłającej żądanie wywołania zwrotnego x. Preferowane są krótkie nazwy.
  • x-success – adres URL, który ma zostać wywołany po ukończeniu. Często będzie to schemat adresu URL Twojej aplikacji, który umożliwia użytkownikom powrót do pierwotnej aplikacji.

Pamiętaj, że aplikacja musi zarejestrować własny schemat adresu URL, by odpowiadać na adres URL wywołania zwrotnego.

  1. Sprawdź, czy aplikacja zarejestrowała schemat adresu URL, który może odpowiadać na żądanie wywołania zwrotnego.
  2. Przekaż etykietę przycisku wywołania zwrotnego w parametrze x-source.
  3. Przekaż URL wywołania zwrotnego w parametrze x-success.

Poniższy przykład spowoduje uruchomienie aplikacji Mapy Google na iOS i wyświetlenie mapy ze środkiem w Nowym Jorku. Aplikacja wyświetli też przycisk „Aplikacja źródłowa”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS wysyła wywołanie zwrotne do fikcyjnego schematu adresu URL – sourceapp://?resume=true.

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

Podobnie jak w przypadku schematu adresu URL comgooglemaps://, musisz najpierw sprawdzić, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i obsługuje schemat adresu URL wywołania zwrotnego x. Aplikacja może sprawdzać dostępność schematu adresu URL za pomocą tego kodu:

Swift

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

Objective-C

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

To jest przykład adresu URL, który umożliwia użytkownikom powrót do aplikacji po wyszukaniu słowa „deser”.

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

Dodawanie nawigacji do aplikacji

Wprowadzenie aplikacji Mapy Google na iOS z prośbą o wskazówki dojazdu to łatwy sposób na zapewnienie użytkownikom dostępu do szczegółowej nawigacji z aplikacji. Możesz użyć schematu adresu URL comgooglemaps:// lub comgooglemaps-x-callback://.

Ten fragment kodu pokazuje, jak używać schematu comgooglemaps-x-callback:// do uzyskiwania wskazówek dojazdu i powracania do aplikacji, gdy użytkownik będzie gotowy. Ten kod wykona te działania:

  1. Sprawdź, czy dostępny jest schemat adresu URL comgooglemaps-x-callback://.
  2. Uruchom aplikację Mapy Google na iOS i zapytaj o trasę dojazdu na lotnisko JFK w Nowym Jorku. Aby uzyskać wskazówki dojazdu z bieżącej lokalizacji użytkownika, pozostaw pole adresu początkowego puste.
  3. Dodaj przycisk o nazwie „AirApp” do aplikacji Mapy Google na iOS. Etykieta przycisku jest definiowana przez parametr x-source.
  4. Wywołaj fikcyjny schemat adresu URL (sourceapp://), gdy użytkownik kliknie przycisk Wstecz.

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

Wprowadzenie aplikacji Mapy Google na iOS z adresu URL Map Google na komputery

Jeśli Twoja aplikacja ma dostęp do dotychczasowego adresu URL w Mapach Google, np. na stronie internetowej lub w bazie danych, możesz użyć tego schematu, aby otworzyć go w aplikacji Mapy Google na iOS. Dzięki temu użytkownicy będą mogli korzystać z najlepszej aplikacji natywnej.

  1. Zastąp schemat http:// lub https:// ciągiem comgooglemapsurl://.
  2. Jeśli chcesz użyć wywołania zwrotnego, dołącz parametry x-source i x-success. Schemat ten jest zgodny ze specyfikacją x-callback-url.

Obsługiwane formaty adresów URL w Mapach Google

Schemat comgooglemapsurl:// obsługuje adresy URL pasujące do tego wyrażenia regularnego, gdzie {TLD} odnosi się do dowolnej prawidłowej domeny krajowej najwyższego poziomu. Aby zwiększyć przejrzystość, dodano podziały wierszy:

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

Sprawdzam dostępność aplikacji Mapy Google

Najpierw sprawdź, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i obsługuje schemat adresu URL:

Swift

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

Objective-C

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

Przykłady

Przykład ogólnego adresu URL w Mapach Google:

Oryginalny adres URL w Mapach Google:

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

Korzystając ze schematu adresu URL:

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

Przykład ogólnego adresu URL w Mapach Google:

Oryginalny adres URL w Mapach Google:

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

Korzystając ze schematu adresu URL:

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

Przykład prośby o wskazówki dojazdu do Tokyo Tower z numerem X:

Oryginalny adres URL w Mapach Google:

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

Poniższy przykład powoduje uruchomienie aplikacji Mapy Google na iOS i wyświetlenie mapy ze wskazówkami dojazdu do Tokyo Tower, zgodnie z pierwotnym adresem URL Map Google (powyżej). Wyświetli się też przycisk „Aplikacja źródłowa”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS zwraca wywołanie zwrotne do fikcyjnego schematu adresu URL – 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