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 iOS w wersji 9 lub nowszej możesz używać uniwersalnych linków, aby uruchamiać Mapy Google, gdy masz adres URL w Mapach Google.

Możesz użyć schematu adresów URL Map Google, aby uruchomić aplikację Mapy Google na iOS, wykonywać wyszukiwania, otrzymywać zapytania o wskazówki dojazdu i wyświetlać widoki 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.

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 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 URL 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 następujące schematy URL:

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

    • Wyświetl mapę w określonej lokalizacji i powiększ widok.
    • Wyszukuj lokalizacje i miejsca i wyświetlaj je na mapie.
    • Zapytania o trasę z jednej lokalizacji do drugiej. Wskazówki dojazdu mogą być zwracane w przypadku 4 środków transportu: samochodem, rowerem, rowerem i transportem publicznym.
    • Dodaj nawigację do aplikacji.
    • Do systemu iOS 8 wykonaj wywołanie zwrotne, gdy aplikacja zostanie zakończona – użyj kodu 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. Pamiętaj, że w systemie iOS 9 system automatycznie dodaje link „Powrót do” po lewej stronie paska stanu.
  • 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 wygodę korzystania z komórek, zamiast wczytywać się w witrynie Map Google.

    • Może to być domena maps.google.com, google.com/maps lub inna prawidłowa domena kraju najwyższego poziomu zamiast com. Możesz też przekazać goo.gl/maps adresy URL przekierowań.
    • Możesz wykonać wywołanie zwrotne 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 skorzystać z jednej z obsługiwanych funkcji, użyj schematu adresu URL w następujący sposób:

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 przedstawisz użytkownikowi jeden z tych adresów URL w swojej aplikacji, musisz najpierw sprawdzić, 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ć inne widoki na mapę 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: jest to centralny punkt widocznego obszaru mapy. Sformatowany jako ciąg tekstowy latitude,longitude rozdzielany przecinkami.
  • mapmode: określa rodzaj wyświetlanej mapy. Możliwe wartości: standard lub streetview. Jeśli nie zostaną podane, używane będą bieżące ustawienia aplikacji.
  • views: włącza lub wyłącza określone widoki. Może mieć wartość satellite, traffic lub transit. Wartości można rozdzielać przecinkami. Jeśli ten parametr zostanie określony bez wartości, wszystkie widoki zostaną usunięte.
  • zoom: określa poziom powiększenia mapy.

Przykładowy URL wyświetla mapę wyśrodkowaną w Nowym Jorku w powiększeniu 14 z włączonym widokiem natężenia ruchu:

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

Mapa natężenia 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 widocznego obszaru.

Parametry

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

  • q: ciąg zapytania dla Twojego wyszukiwania.

Przykładowy URL do wyszukiwania 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świetlam trasę

Użyj tego schematu, aby wyświetlić i wyświetlić trasę między 2 lokalizacjami. Możesz też określić środek transportu.

Parametry

  • saddr: określa punkt początkowy wyszukiwania trasy. Może to być szerokość,długość geograficzna lub adres w formacie zapytania. Jeśli jest to ciąg zapytania zwracający więcej niż 1 wynik, wybierany jest pierwszy wynik. Jeśli wartość będzie pusta, zostanie użyta bieżąca lokalizacja użytkownika.
  • daddr: określa punkt końcowy wyszukiwania trasy. Ma ten sam format i sposób działania co saddr.
  • directionsmode: forma transportu. Możliwe wartości: driving, transit, bicycling lub walking.

Przykładowy URL powoduje wyświetlenie wskazówek dojazdu transportem publicznym między lotniskiem Nowy Jork 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ć URL wywołania zwrotnego, musisz użyć schematu URL comgooglemaps-x-callback://. Ten schemat jest zgodny ze specyfikacją x-callback-url. Gdy wywołasz aplikację Mapy Google na iOS zgodnie z tym schematem, u góry ekranu wyświetli 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:// z podanymi niżej parametrami. Oba parametry są wymagane.

  • x-source – nazwa aplikacji wysyłającej żądanie wywołania zwrotnego; Preferowane są krótkie nazwy.
  • x-success – adres URL po wywołaniu. Często jest to schemat adresów URL prowadzący do Twojej aplikacji, który umożliwia użytkownikom powrót do pierwotnej aplikacji.

Twoja aplikacja musi zarejestrować własny schemat adresu URL, aby odpowiedzieć na adres URL wywołania zwrotnego.

  1. Upewnij się, że aplikacja zarejestrowała schemat adresów URL, który może odpowiedzieć na żądanie wywołania zwrotnego.
  2. Prześlij etykietę przycisku wywołania zwrotnego w parametrze x-source.
  3. Przekazać adres URL wywołania zwrotnego w parametrze x-success.

W poniższym przykładzie uruchomimy aplikację Mapy Google na iOS i będziemy wyświetlać mapę wyśrodkowaną w Nowym Jorku. W aplikacji pojawi się też przycisk „SourceApp”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS wyśle wywołanie fikcyjnego 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 URL comgooglemaps://, musisz najpierw sprawdzić, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i obsługuje schemat adresów URL wywołania zwrotnego. 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://"]];

Oto przykładowy 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

Uruchomienie aplikacji Mapy Google na iOS z prośbą o wskazówki dojazdu pozwoli w łatwy sposób zapewnić użytkownikom dostęp do szczegółowych wskazówek nawigacji w Twojej aplikacji. Możesz użyć schematów 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. Ten kod wykonuje takie operacje:

  1. Sprawdź, czy dostępny jest schemat adresu URL comgooglemaps-x-callback://.
  2. Uruchom aplikację Mapy Google na iOS i poproś o wskazówki dojazdu na lotnisko JFK w Nowym Jorku. Aby wysłać zapytanie o trasę z bieżącej lokalizacji użytkownika, pozostaw adres początkowy pusty.
  3. Dodaj przycisk „AirApp” do aplikacji Mapy Google na iOS. Etykietę przycisku określa 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 aplikacja ma dostęp do istniejącego adresu URL Map Google, np. na stronie internetowej lub w bazie danych, możesz go otworzyć w aplikacji Mapy Google na iOS, aby zapewnić użytkownikom najlepsze działanie natywne.

  1. Zastąp schemat http:// lub https:// kodem 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 krajowej najwyższego poziomu. Dodaliśmy podziały wierszy, aby były bardziej przejrzyste:

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

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

Przy użyciu schematu adresu URL:

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

Przykład ogólnego adresu URL Map Google:

Pierwotny URL z Map Google:

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

Przy użyciu schematu adresu URL:

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

Przykładowe przesłanie wskazówki dojazdu do Tokio Tower z wywołaniem X:

Pierwotny URL z 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

Przykład poniżej spowoduje uruchomienie aplikacji Mapy Google na iOS i wyświetlenie mapy ze wskazówkami dojazdu do Tokijskiej Wieży, zgodnie z pierwotnym adresem URL Map Google (powyżej). W aplikacji pojawi się też przycisk „SourceApp”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS wyśle wywołanie fikcyjnego 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