Schemat adresu URL w Mapach Google na iOS

Na urządzeniach z systemem iOS 9 i nowszym możesz używać linków uniwersalnych do uruchamiania Map Google, jeśli masz adres URL Map Google.

Korzystając ze schematu adresów URL Map Google, możesz uruchomić aplikację Mapy Google na iOS i przeprowadzić wyszukiwanie, otrzymywać prośby o wskazówki dojazdu oraz wyświetlać widoki mapy. Po uruchomieniu Map Google automatycznie wysyłamy Twój identyfikator pakietu.

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

Mapy Google na iOS obsługują uniwersalne linki na urządzeniach z systemem iOS 9 lub nowszym.

Jeśli adres URL pasuje do poniższego wyrażenia regularnego, a urządzenie korzysta z systemu iOS 9 lub nowszego, możesz bezpośrednio użyć metody openURL:.

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

Na 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 uruchomienie natywnej aplikacji na iOS z innej aplikacji na iOS lub aplikacji internetowej. Możesz ustawić opcje w adresie URL, który będzie przekazywany do uruchomionej aplikacji. Aplikacja Mapy Google na iOS obsługuje te schematy adresów URL:

  • comgooglemaps:// i comgooglemaps-x-callback:// – te schematy pozwalają uruchomić aplikację Mapy Google na iOS i wykonać jedną z tych czynności:

    • Możesz wyświetlić mapę w określonej lokalizacji i na poziomie powiększenia.
    • Wyszukaj lokalizacje lub miejsca i wyświetl je na mapie.
    • Uzyskiwanie wskazówek dojazdu z jednego miejsca do drugiego. Trasa dojazdu może zostać zwrócona dla czterech środków transportu: samochodem, pieszo, rowerem i transportem publicznym.
    • Dodaj nawigację do aplikacji.
    • W iOS 8 wyślij wywołanie zwrotne po zakończeniu działania aplikacji za pomocą narzędzia comgooglemaps-x-callback://. Wywołania zwrotne często służą do powrotu użytkownika do aplikacji, w której 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 pozwala uruchomić aplikację Mapy Google na iOS przy użyciu adresu URL pochodzącego z witryny Map Google na komputery. Oznacza to, że możesz zapewnić użytkownikom środowisko mobilne, zamiast wczytywać stronę Map Google.

    • Pierwotny adres URL może wskazywać domenę maps.google.com, domenę google.com/maps lub dowolną prawidłową domenę krajową najwyższego poziomu zamiast domeny com. Możesz również przekazać goo.gl/maps adresy URL przekierowania.
    • Możesz wysłać wywołanie zwrotne za pomocą parametrów x-source i x-success ze schematem adresu URL comgooglemapsurl://.

Uruchomienie aplikacji Mapy Google na iOS i wykonanie konkretnej funkcji

Aby uruchomić aplikację Mapy Google na iOS i opcjonalnie skorzystać z jednej z obsługiwanych funkcji, użyj schematu URL o następującej postaci:

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 pokażesz użytkownikowi jeden z tych adresów URL w aplikacji, musisz najpierw sprawdzić, czy aplikacja jest zainstalowana. Aplikacja może sprawdzić, czy schemat adresów 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ę Poznania w Nowym Jorku, możesz użyć następującego 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

Aby wyświetlić mapę z określonym powiększeniem i w określonej lokalizacji, użyj schematu adresu URL. Możesz też nakładać na mapę inne widoki lub wyświetlać zdjęcia Street View.

Parametry

Wszystkie parametry podane poniżej są opcjonalne. Jeśli nie ustawisz żadnych parametrów, schemat adresu URL uruchomi aplikację Mapy Google na iOS.

  • center: to centralny punkt widocznego obszaru mapy. Sformatowana jako ciąg latitude,longitude rozdzielany przecinkami.
  • mapmode: ustawia rodzaj wyświetlanej mapy. Możliwe wartości: standard lub streetview. Jeśli go nie podasz, zostaną użyte bieżące ustawienia aplikacji.
  • views: włącza lub wyłącza określone widoki danych. Można ustawić na: satellite, traffic lub transit. Za pomocą separatora przecinka można ustawić wiele wartości. Jeśli parametr jest bez wartości, spowoduje to usunięcie wszystkich wyświetleń.
  • zoom: określa poziom powiększenia mapy.

Ten przykładowy URL pokazuje mapę wyśrodkowaną na Nowym Jorku przy powiększeniu 14 z widokiem natężenia ruchu:

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

Mapa ruchu w Nowym Jorku

Oto 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 też parametr q.

  • q: ciąg zapytania do wyszukania.

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

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

Pizza w pobliżu

Oto 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świetlam trasę

Ten schemat służy do pobierania i wyświetlania wskazówek dojazdu między dwiema lokalizacjami. Możesz też określić środek transportu.

Parametry

  • saddr: ustawia punkt początkowy wyszukiwania wskazówek dojazdu. Może to być szerokość i długość geograficzna lub adres w formacie zapytania. Jeśli jest to ciąg zapytania, który zwraca więcej niż 1 wynik, wybierany jest pierwszy wynik. Jeśli wartość jest pusta, używana jest bieżąca lokalizacja użytkownika.
  • daddr: ustawia punkt końcowy wyszukiwania wskazówek dojazdu. Ma taki sam format i działanie jak saddr.
  • directionsmode: sposób transportu. Możliwe wartości: driving, transit, bicycling lub walking.

Przykładowy URL pokazuje wskazówki dojazdu transportem publicznym między Google Nowy Jork a lotnisko 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

Oto 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. Gdy wywołasz aplikację Mapy Google na iOS za pomocą tego schematu, aplikacja wyświetli przycisk u góry ekranu. Kliknięcie tego przycisku spowoduje wywołanie zwrotne do określonego przez Ciebie adresu URL.

Żądania wysyłane do comgooglemaps-x-callback:// muszą mieć następujący format:

comgooglemaps-x-callback://?parameters

Parametry

Schemat adresu URL x-wywołania zwrotnego akceptuje te same parametry co schemat adresu URL comgooglemaps://, ale dodatkowo następujące parametry dodatkowe. Oba parametry są wymagane.

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

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

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

Poniższy przykład pozwala uruchomić aplikację Mapy Google na iOS i wyświetlić mapę wyśrodkowaną na Nowym Jorku. W aplikacji wyświetli się również przycisk „SourceApp”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS zwróci wywołanie 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

Tak jak w przypadku schematu adresu URL comgooglemaps://, musisz najpierw sprawdzić, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i czy obsługuje schemat adresu URL x-callback. Aplikacja może sprawdzić, czy schemat adresu URL jest dostępny za pomocą tego kodu:

Swift

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

Objective-C

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

To przykład adresu URL, który pozwala użytkownikom wrócić do aplikacji po wyszukaniu deserów.

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

Dodaję nawigację do aplikacji

Uruchomienie aplikacji Mapy Google na iOS z prośbą o wskazówki dojazdu to prosty sposób na zapewnienie użytkownikom dostępu do nawigacji zakręt po zakręcie z poziomu Twojej aplikacji. Możesz użyć schematów adresów URL comgooglemaps:// lub comgooglemaps-x-callback://.

Ten fragment kodu pokazuje, jak używać schematu comgooglemaps-x-callback:// do wysyłania zapytań o wskazówki dojazdu, a następnie powrotu do aplikacji, gdy użytkownik będzie gotowy. Kod wykona te działania:

  1. Sprawdź, czy schemat adresu URL comgooglemaps-x-callback:// jest dostępny.
  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 to pole puste.
  3. Dodaj przycisk „AirApp” do aplikacji Mapy Google na iOS. Etykieta przycisku jest określana przez parametr x-source.
  4. Gdy użytkownik kliknie przycisk Wstecz, zostanie wywołany fikcyjny schemat adresu URL (sourceapp://).

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

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

Jeśli Twoja aplikacja ma dostęp do istniejącego adresu URL Map Google, na przykład na stronie internetowej lub w bazie danych, możesz skorzystać z tego schematu, aby otwierać ten adres w aplikacji Mapy Google na iOS, aby zapewnić użytkownikom najlepsze wrażenia natywne.

  1. Zastąp schemat http:// lub https:// elementem comgooglemapsurl://.
  2. Jeśli chcesz używać wywołania zwrotnego, uwzględnij 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, które pasują do tego wyrażenia regularnego, gdzie {TLD} oznacza dowolną prawidłową domenę krajową najwyższego poziomu. Aby zwiększyć przejrzystość, dodaliśmy 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 Map Google:

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

Za pomocą 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 Map Google:

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

Za pomocą schematu adresu URL:

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

Przykład prośby o wskazówki dojazdu do Tokyo Tower z wywołaniem zwrotnym x:

Oryginalny adres URL Map 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 uruchamia aplikację Mapy Google na iOS i wyświetla mapę ze wskazówkami dojazdu do Tokyo Tower, zgodnie z oryginalnym adresem URL Map Google (powyżej). Aplikacja wyświetli też przycisk „SourceApp”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS wyśle 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