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, gdy znasz adres URL Map Google.

Za pomocą schematu adresu URL Map Google możesz uruchomić aplikację Mapy Google na iOS oraz przeprowadzić wyszukiwanie, uzyskać wskazówki dojazdu i wyświetlić widok mapy. Gdy uruchomisz Mapy Google, identyfikator pakietu zostanie automatycznie wysłany w ramach żądania.

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

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

Jeśli adres URL pasuje do tego wyrażenia regularnego, a na urządzeniu jest system iOS 9 lub nowszy, rozważ użycie bezpośrednio 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"]];

Omówienie

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 uruchomionej aplikacji. Aplikacja Mapy Google na iOS obsługuje te schematy adresów URL:

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

    • Wyświetlanie mapy w określonej lokalizacji i poziomie powiększenia.
    • wyszukiwać lokalizacje i miejsca oraz wyświetlać je na mapie;
    • Wyznacz trasę z jednego miejsca do drugiego. Wskazówki dojazdu mogą być zwracane w przypadku 4 rodzajów transportu: samochodowego, pieszego, rowerowego i publicznego.
    • Dodaj nawigację do aplikacji.
    • W iOS 8 wywołaj metodę wywołania zwrotnego, gdy aplikacja zakończy działanie, za pomocą comgooglemaps-x-callback://. Zwróć uwagę, że funkcje zwracane są często używane do przywracania użytkownika do aplikacji, która pierwotnie otworzyła Mapy Google na iOS. Pamiętaj, że w iOS 9 system automatycznie wyświetla link „Wróć” w lewym rogu paska stanu.
  • comgooglemapsurl:// – ten schemat umożliwia uruchamianie aplikacji Mapy Google na iOS za pomocą adresu URL wygenerowanego na podstawie witryny 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 kraju zamiast com. Możesz też przekazać adresy URL goo.gl/maps przekierowania.
    • Możesz wywołać funkcję zwrotnego wywołania za pomocą parametrów x-source i x-success w schemacie 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 takim formacie:

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 użytkownikowi jeden z tych adresów URL w aplikacji, najpierw 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żyj schematu adresu URL, aby wyświetlić mapę z określonym poziomem powiększenia i lokalizacją. 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 URL uruchomi aplikację Mapy Google na iOS.

  • center: to punkt centralny widoku mapy. Jest sformatowany jako ciąg znaków latitude,longitude oddzielonych przecinkami.
  • mapmode: określa rodzaj wyświetlanej mapy. Może mieć wartość standard lub streetview. Jeśli nie zostaną określone, zostaną użyte bieżące ustawienia aplikacji.
  • views: włącza lub wyłącza określone widoki. Może przyjmować wartości: satellite, traffic lub transit. Można ustawić wiele wartości, rozdzielając je przecinkami. Jeśli parametr nie ma wartości, spowoduje wyczyszczenie wszystkich wyświetleń.
  • 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 widokiem na ruch drogowy:

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żywaj tego schematu, aby wyświetlać zapytania w określonym miejscu w widoku.

Parametry

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

  • q: ciąg zapytania do wyszukiwania.

Ten przykładowy adres URL służy do wyszukiwania informacji o sklepie „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ś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 tras. Może to być współrzędna szerokości i długości geograficznej lub adres w formacie zapytania. Jeśli jest to ciąg znaków zapytania, który zwraca więcej niż 1 wynik, zostanie wybrany pierwszy wynik. Jeśli pozostawisz to pole puste, używana będzie bieżąca lokalizacja użytkownika.
  • daddr: ustawia punkt końcowy wyszukiwania wskazówek. Ma ten sam format i działa tak samo jak pole saddr.
  • directionsmode: sposób transportu. Może przyjmować wartości: driving, transit, bicycling lub walking.

Przykładowy adres URL wyświetla wskazówki dotyczące transportu 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 do podanego adresu URL.

Żądania wysyłane do adresu 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://, z tymi dodatkowymi parametrami. Oba parametry są wymagane.

  • x-source – nazwa aplikacji wysyłającej żądanie x-callback. Preferowane są krótkie nazwy.
  • x-success – URL, pod którym po zakończeniu wyświetlania reklamy następuje połączenie. 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, aby mogła odpowiadać na wywołania zwrotne.

  1. Upewnij się, że aplikacja ma zarejestrowany schemat adresu URL, który może odpowiedzieć na żądanie wywołania zwrotnego.
  2. W parametrze x-source podaj etykietę przycisku wywołania zwrotnego.
  3. Przekaż URL wywołania zwrotnego w parametrze x-success.

W tym przykładzie aplikacja Mapy Google na iOS uruchomi się i wyświetli mapę z Nowym Jorkiem na środku. Aplikacja wyświetli też przycisk „Aplikacja źródłowa”. Gdy klikniesz przycisk „Aplikacja źródłowa”, aplikacja Mapy Google na iOS wyśle 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

Podobnie jak w przypadku schematu adresów URL comgooglemaps:// musisz najpierw sprawdzić, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i czy obsługuje schemat adresów 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://"]];

Przykład adresu URL, który pozwala użytkownikom wrócić 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

Uruchomienie aplikacji Mapy Google na iOS z prośbą o wskazanie trasy to łatwy sposób na umożliwienie użytkownikom korzystania z nawigacji zakręt po zakręcie w aplikacji. Możesz użyć schematu 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 czynności:

  1. Sprawdź, czy schemat adresu URL comgooglemaps-x-callback:// jest dostępny.
  2. Otwórz aplikację Mapy Google na iOS i uzyskaj wskazówki do lotniska JFK w Nowym Jorku. Pozostaw pole adresu początkowego puste, aby poprosić o wskazanie trasy z bieżącej lokalizacji użytkownika.
  3. Dodaj do aplikacji Mapy Google na iOS przycisk „AirApp”. Etykieta przycisku jest definiowana przez parametr x-source.
  4. Gdy użytkownik kliknie przycisk Wstecz, wywołaj 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.");
}

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

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

  1. Zamień schemat http:// lub https:// na comgooglemapsurl://.
  2. Jeśli chcesz użyć wywołania zwrotnego, dodaj parametry x-sourcex-success. Schemat ten jest zgodny ze specyfikacją x-callback-url.

Obsługiwane formaty adresów URL Map Google

Schemat comgooglemapsurl:// obsługuje adresy URL, które pasują do tego wyrażenia regularnego, gdzie {TLD} oznacza dowolną prawidłową domenę najwyższego poziomu kraju. W celu ułatwienia odczytu dodaliśmy znaki końca wiersza:

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

Sprawdzanie dostępności aplikacji Mapy Google

Najpierw sprawdź, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i czy 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 Map 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 Map Google:

Pierwotny URL Map 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 wieży Tokyo Tower z użyciem parametru x-callback:

Pierwotny 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

W tym przykładzie aplikacja Mapy Google na iOS uruchamia mapę z kierunkami do wieży Tokyo Tower zgodnie z adresem URL Map Google (powyżej). Aplikacja wyświetli też przycisk „Aplikacja źródłowa”. Gdy klikniesz przycisk „Aplikacja źródłowa”, 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