Schemat adresu URL w Mapach Google na iOS

Na urządzeniach z iOS 9 lub nowszym możesz używać uniwersalnych linków, aby uruchamiać Mapy Google, gdy masz adres URL Map Google.

Możesz użyć schematu URL Map Google, aby uruchomić aplikację Mapy Google na iOS i przeprowadzać wyszukiwania, uzyskiwać wskazówki dojazdu oraz wyświetlać widoki mapy. Gdy uruchamiasz Mapy Google, identyfikator pakietu jest automatycznie wysyłany w ramach żądania.

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 9 lub nowszym.

Jeśli Twój adres URL pasuje do tego wyrażenia regularnego, a urządzenie działa w systemie iOS 9 lub nowszym, 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 uruchamianie natywnej aplikacji na iOS z innej aplikacji na iOS lub aplikacji internetowej. W adresie URL możesz ustawić opcje, które zostaną przekazane do uruchomionej aplikacji. Aplikacja Mapy Google na iOS obsługuje te schematy adresów URL:

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

    • Wyświetla mapę w określonej lokalizacji i na określonym poziomie powiększenia.
    • wyszukiwać lokalizacje i miejsca oraz wyświetlać je na mapie;
    • Poproś o wskazówki dojazdu z jednej lokalizacji do drugiej. Wskazówki dojazdu mogą być zwracane w przypadku 4 rodzajów transportu: samochodem, pieszo, rowerem i transportem publicznym.
    • Dodaj nawigację do aplikacji.
    • W systemie iOS 8 i starszych wersjach wywołaj funkcję zwrotną po zakończeniu działania aplikacji, używając kodu comgooglemaps-x-callback://. Wywołania zwrotne są często używane do przekierowywania użytkownika z powrotem do aplikacji, która pierwotnie otworzyła Mapy Google na iOS. Pamiętaj, że w systemie iOS 9 system automatycznie wyświetla link „Wróć do” w lewym rogu paska stanu.
  • comgooglemapsurl:// – ten schemat umożliwia uruchomienie aplikacji Mapy Google na iOS za pomocą adresu URL pochodzącego z wersji Map Google na komputery. Oznacza to, że możesz zapewnić użytkownikom natywną obsługę na urządzeniach mobilnych zamiast po prostu wczytywać stronę Map Google.

    • Oryginalny adres URL może być adresem maps.google.com lub google.com/maps albo może zawierać dowolną prawidłową domenę najwyższego poziomu zamiast com. Możesz też przekazywać goo.gl/mapsadresy URL przekierowania.
    • Możesz wywołać funkcję zwrotną za pomocą parametrów x-sourcex-success ze schematem adresu URL comgooglemapsurl://.

uruchamianie aplikacji Mapy Google na iOS i wykonywanie 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 postaci:

comgooglemaps://?parameters

lub

comgooglemaps-x-callback://?parameters

Parametry są szczegółowo opisane w dalszej części tego dokumentu.

Sprawdzanie dostępności aplikacji Mapy Google na urządzeniu

Zanim wyświetlisz jeden z tych adresów URL użytkownikowi w aplikacji, musisz najpierw sprawdzić, 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żyj schematu adresu URL, aby wyświetlić mapę na określonym poziomie powiększenia i w określonej lokalizacji. Możesz też nałożyć na mapę inne widoki lub wyświetlić 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 punkt środkowy widoku mapy. Sformatowane jako ciąg znaków rozdzielonych przecinkami latitude,longitude.
  • mapmode: określa rodzaj wyświetlanej mapy. Może mieć wartość: standard lub streetview. Jeśli nie zostanie określony, zostaną użyte bieżące ustawienia aplikacji.
  • views: włącza i wyłącza określone widoki. Może mieć wartość: satellite, traffic lub transit. Możesz ustawić wiele wartości, rozdzielając je przecinkami. Jeśli parametr zostanie podany bez wartości, wszystkie widoki zostaną wyczyszczone.
  • zoom: określa poziom powiększenia mapy.

Ten przykładowy adres URL wyświetla mapę z centrum w Nowym Jorku przy powiększeniu 14 i włączonym widokiem 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

Użyj tego schematu, aby wyświetlać zapytania w określonej lokalizacji obszaru wyświetlania.

Parametry

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

  • q: ciąg zapytania dotyczący wyszukiwania.

Ten przykładowy URL wyszukuje „pizzę” w określonej lokalizacji:

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

Pizzerie 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świetlanie wskazówek

Użyj tego schematu, aby poprosić o wyświetlenie trasy między 2 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, zostanie wybrany 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: środek transportu. Może przyjmować wartości: driving, transit, bicycling lub walking.

Przykładowy adres URL wyświetla 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

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://. Ten schemat jest zgodny ze specyfikacją x-callback-url. Gdy wywołasz aplikację Mapy Google na iOS za pomocą tego schematu, u góry ekranu pojawi się przycisk. Kliknięcie tego przycisku spowoduje wywołanie zwrotne pod podany adres URL.

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

comgooglemaps-x-callback://?parameters

Parametry

Schemat adresu URL x-callback akceptuje te same parametry co schemat adresu URL comgooglemaps://, a także te dodatkowe parametry: Oba parametry są wymagane.

  • x-source – nazwa aplikacji wysyłającej żądanie x-callback. Preferowane są krótkie nazwy.
  • x-success – adres URL, pod który należy zadzwonić po zakończeniu. Często jest to schemat adresu URL Twojej aplikacji, który umożliwia użytkownikom powrót do pierwotnej aplikacji.

Pamiętaj, że Twoja aplikacja będzie musiała zarejestrować własny schemat adresu URL, aby móc odpowiadać na adres URL wywołania zwrotnego.

  1. Upewnij się, że Twoja 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ż adres URL wywołania zwrotnego w parametrze x-success.

Poniższy przykład uruchomi aplikację Mapy Google na iOS i wyświetli mapę z Nowym Jorkiem w centrum. Aplikacja wyświetli też przycisk o nazwie „SourceApp”. Gdy klikniesz przycisk „SourceApp”, aplikacja Mapy Google na iOS wyśle 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 comgooglemaps:// schematu URL najpierw sprawdź, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i obsługuje schemat 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 jest przykład adresu URL, który umożliwia użytkownikom powrót do aplikacji po wyszukaniu deseru.

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

Dodawanie nawigacji do aplikacji

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

Ten fragment kodu pokazuje, jak użyć schematu comgooglemaps-x-callback://, aby poprosić o wskazówki dojazdu, a potem wrócić 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 poproś o wskazówki dojazdu na lotnisko JFK w Nowym Jorku. Aby poprosić o wskazówki dojazdu z bieżącej lokalizacji użytkownika, pozostaw adres początkowy pusty.
  3. Dodaj do aplikacji Mapy Google na iOS przycisk o nazwie „AirApp”. Etykietę przycisku określa parametr x-source.
  4. Wywołaj fikcyjny schemat 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.");
}

Uruchamianie aplikacji Mapy Google na iOS z poziomu adresu URL Map Google na komputerze

Jeśli Twoja aplikacja ma dostęp do istniejącego adresu URL Map Google, np. na stronie internetowej lub w bazie danych, możesz użyć tego schematu, aby otworzyć adres URL w aplikacji Mapy Google na iOS, zapewniając użytkownikom najlepsze wrażenia.

  1. Zastąp schemat http:// lub https:// schematem comgooglemapsurl://.
  2. Jeśli chcesz użyć wywołania zwrotnego, dodaj parametry x-sourcex-success. Ten schemat 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 najwyższego poziomu kraju. Aby zwiększyć przejrzystość, dodaliśmy znaki końca wiersza:

(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 Map Google:

Pierwotny URL w Mapach Google:

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

Korzystanie ze schematu adresu URL:

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

Przykład ogólnego adresu URL Map Google:

Pierwotny URL w Mapach Google:

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

Korzystanie ze schematu adresu URL:

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

Przykład prośby o wskazówki dojazdu do wieży Tokyo Tower z użyciem x-callback:

Pierwotny 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 uruchomi aplikację Mapy Google na iOS i wyświetli mapę ze wskazówkami dojazdu do Tokyo Tower, zgodnie z oryginalnym adresem URL Map Google (powyżej). W aplikacji pojawi się też przycisk o nazwie „SourceApp”. Gdy klikniesz przycisk „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