Schemat adresu URL w Mapach Google na iOS

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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

Możesz użyć schematu adresów URL Map Google, aby uruchomić aplikację Mapy Google na iOS, wyszukiwać informacje, wyświetlać zapytania o trasę i wyświetlać widok mapy. Po uruchomieniu Map Google identyfikator pakietu jest automatycznie wysyłany w ramach żądania.

Aby użyć schematu adresów URL Map Google, nie potrzebujesz klucza interfejsu API Google.

Do uruchamiania Map Google zalecamy używanie adresów URL Map Google międzyplatformowych, ponieważ te uniwersalne adresy URL umożliwiają większą obsługę żądań map niezależnie od platformy, na której znajduje się użytkownik. Schematu URL na iOS należy używać tylko w przypadku funkcji, które mogą działać tylko na platformie mobilnej (np. szczegółowej nawigacji).

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

Jeśli URL pasuje do tego wyrażenia regularnego, a urządzenie działa w systemie iOS 9 lub nowszym, możesz 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"]];

Omówienie

Schemat URL-a umożliwia uruchamianie natywnej aplikacji na iOS z innej aplikacji na iOS lub aplikacji internetowej. Możesz ustawić w adresie URL opcje, 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świetlanie mapy w określonej lokalizacji i na powiększenia.
    • Możesz wyszukiwać lokalizacje i miejsca, a następnie wyświetlać je na mapie.
    • Możliwość wysyłania wskazówek dojazdu z jednej lokalizacji do drugiej. Wskazówki dojazdu mogą być zwracane w przypadku 4 środków transportu: samochodem, pieszo, rowerem i transportem publicznym.
    • Dodaj elementy nawigacyjne do aplikacji.
    • W systemie iOS 8 wykonaj wywołanie zwrotne z zakończeniem działania, używając comgooglemaps-x-callback://. Wywołania zwrotne są często używane do powrotu użytkownika do aplikacji, która pierwotnie otworzyła Mapy Google na iOS. W systemie iOS 9 system automatycznie podaje w lewym rogu paska stanu link „Powrót do”.
  • comgooglemapsurl:// – ten schemat umożliwia uruchomienie aplikacji Mapy Google na iOS za pomocą adresu URL uzyskanego z witryny Map Google na komputery. Oznacza to, że możesz zapewnić użytkownikom natywny komfort korzystania z urządzenia mobilnego, zamiast wczytywać stronę w Mapach Google.

    • Pierwotny URL może wskazywać domenę maps.google.com lub google.com/maps albo używać dowolnej innej domeny krajowej najwyższego poziomu zamiast com. Możesz też przekazać goo.gl/maps URL przekierowania.
    • Wywołanie zwrotne możesz wykonać za pomocą parametrów x-source i x-success ze schematem adresu URL comgooglemapsurl://.

Uruchamianie aplikacji Mapy Google na iOS i wykonywanie określonych 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 znajdziesz szczegółowo w dalszej części tego dokumentu.

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

Zanim przedstawisz użytkownikowi jeden z tych adresów URL, najpierw sprawdź, czy aplikacja została 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 URL-a, aby wyświetlić mapę na określonym poziomie powiększenia i w określonej lokalizacji. Możesz również nałożyć 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 URL-a uruchomi aplikację Mapy Google na iOS.

  • center: punkt środkowy widocznego obszaru mapy. Ma format latitude,longitude rozdzielanego przecinkami.
  • mapmode: określa rodzaj mapy. Wartość może wynosić standard lub streetview. Jeśli nie określisz tego ustawienia, używane będą aktualne ustawienia aplikacji.
  • views: włącza lub wyłącza określone widoki. Można je ustawić na: satellite, traffic lub transit. Wiele wartości można ustawić za pomocą przecinka rozdzielającego. Jeśli parametr jest określony bez wartości, spowoduje to usunięcie wszystkich widoków danych.
  • zoom: określa poziom powiększenia mapy.

Ten przykładowy URL pokazuje mapę wyśrodkowaną na Nowym Jorku w powiększeniu 14 z włączonym widokiem:

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 zapytań 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.

Przykładowy URL do wyszukania hasła „pizza” w określonym miejscu:

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 trasy

Ten schemat umożliwia wyświetlanie i wyświetlanie wskazówek dojazdu między dwiema 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 albo adres w formacie zapytania. Jeśli jest to ciąg zapytania, który zwraca więcej niż jeden wynik, wybierany jest pierwszy. Jeśli wartość jest pusta, zostanie użyta bieżąca lokalizacja użytkownika.
  • daddr: określa punkt końcowy wyszukiwania trasy. Ma taki sam format i działanie jak saddr.
  • directionsmode: metoda transportu. Możliwe wartości: driving, transit, bicycling lub walking.

Przykładowy adres URL zawiera wskazówki dojazdu transportem publicznym pomiędzy Google w Nowym Jorku a lotniskiem w 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ć URL wywołania zwrotnego, musisz użyć schematu URL comgooglemaps-x-callback://. Ten schemat jest zgodny ze specyfikacją x-callback-url. Gdy wywołujesz aplikację Mapy Google na iOS zgodnie z tym schematem, u góry ekranu wyświetla się przycisk. Kliknięcie tego przycisku spowoduje wywołanie zwrotne do określonego przez Ciebie adresu URL.

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

comgooglemaps-x-callback://?parameters

Parametry

Schemat adresu URL wywołania zwrotnego zawiera te same parametry co schemat adresu URL comgooglemaps://, ale zawiera dodatkowe parametry: Oba parametry są wymagane.

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

Pamiętaj, że Twoja aplikacja musi zarejestrować własny schemat adresu URL, aby mógł reagować na adres URL wywołania zwrotnego.

  1. Sprawdź, czy aplikacja zarejestrowała 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 przedstawia uruchomienie aplikacji Mapy Google na iOS i wyświetlanie mapy wyśrodkowanej w Nowym Jorku. Będzie też widoczny przycisk z etykietą „SourceApp”. Gdy użytkownik kliknie przycisk „SourceApp”, aplikacja Mapy Google na iOS zwróci odpowiedź na fikcyjny schemat 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 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 wywołania zwrotnego. Twoja aplikacja może sprawdzić, czy schemat adresów URL jest dostępny, używając tego kodu:

Swift

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

Objective-C

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

Oto przykładowy 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 wskazówki dojazdu umożliwi użytkownikom proste korzystanie ze szczegółowej nawigacji w Twojej aplikacji. Możesz użyć schematów adresów URL comgooglemaps:// lub comgooglemaps-x-callback://.

Ten fragment kodu pokazuje, jak za pomocą schematu comgooglemaps-x-callback:// zażądać wskazówek dojazdu, a następnie wrócić do aplikacji, gdy użytkownik będzie gotowy. Kod będzie:

  1. Sprawdź, czy dostępny jest schemat adresu URL comgooglemaps-x-callback://.
  2. Uruchom aplikację Mapy Google na iOS i poproś o trasę do lotniska JFK w Nowym Jorku. Aby uzyskać wskazówki dojazdu od bieżącej lokalizacji użytkownika, pozostaw adres początkowy pusty.
  3. Dodaj przycisk z etykietą „AirApp” do aplikacji Mapy Google na iOS. Etykietę przycisku definiuje parametr x-source.
  4. Wywołuj fikcyjny schemat 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 adresu URL Map Google na komputery

Jeśli Twoja aplikacja ma dostęp do istniejącego adresu URL Map Google, np. do strony internetowej lub bazy danych, możesz otworzyć ten adres w aplikacji Mapy Google na iOS, aby zapewnić użytkownikom Androida najwyższą jakość.

  1. Zastąp schemat http:// lub https:// ciągiem comgooglemapsurl://.
  2. Jeśli chcesz użyć wywołania zwrotnego, dodaj parametry x-source i x-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 prawidłowej domeny najwyższego poziomu. Aby zwiększyć czytelność, 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 czy obsługuje schemat adresów URL:

Swift

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

Objective-C

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

Przykłady

Przykład ogólnego URL-a Map 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 URL-a Map 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 żądania wyznaczenia trasy do Tokyo Tower z wywołaniem zwrotnym:

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 spowoduje uruchomienie aplikacji Mapy Google na iOS i wyświetlenie mapy ze wskazówkami dojazdu do Tokyo Tower, zgodnie z tym, jak wyglądał pierwotny URL Map Google (powyżej). Aplikacja wyświetli też przycisk „SourceApp”. Gdy użytkownik kliknie przycisk „SourceApp”, aplikacja Mapy Google na iOS zwróci odpowiedź do fikcyjnego schematu 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