Wskazówki, które ułatwią użytkownikom korzystanie z nawigacji samochodem

Istnieje nowsza wersja tego dokumentu z przykładami użycia nowych interfejsów Places API i Routes API.

Zwykle, gdy użytkownik jedzie do interesującego go miejsca, potrzebuje nawigacji do pobliskiej lokalizacji, takiej jak parking lub punkt dostępu. Wyobraź sobie kierowcę, który musi dojechać na lotnisko lub do centrum handlowego. Jadąc na lotnisko, kierowca chce dotrzeć do terminala lub punktu wysiadania, a nie do centrum kompleksu lotniskowego. Podobnie parking obok centrum handlowego może być znacznie lepszym rozwiązaniem dla użytkownika z samochodem. W takim przypadku, tworząc aplikację lub usługę, która ma prowadzić kierowcę, najpierw znajdź lokalizację, do której się on udaje, a następnie zaproponuj mu opcjonalne miejsca docelowe w pobliżu tej lokalizacji. Dzięki temu możesz zapewnić klientom lepszą obsługę i pokazać, że cenisz ich czas. Wystarczy niewielki, ale przemyślany wysiłek programistyczny, który wykorzystuje dane o lokalizacji dostarczane przez Google Maps Platform.

[Kontekst systemu] Systemy nawigacji wysokiego poziomu
Uproszczony widok systemów, które pomagają kierowcy dotrzeć do miejsca docelowego samochodem
Schemat systemów wysokiego poziomu

Pokażemy, jak możesz używać interfejsów Places API i Directions API kolejno lub w połączeniu, aby znaleźć odpowiednie miejsce do zaparkowania w pobliżu miejsca docelowego. To rozwiązanie ma na celu wyeliminowanie niepewności i konieczności wykonywania wielu interakcji, aby znaleźć miejsce do zaparkowania, gdy zbliżasz się do miejsca docelowego. Przyjrzyjmy się 2 przykładom, jak można szczegółowo zaimplementować te przypadki.

Przykład 1. Atrakcja turystyczna bez parkingu

Wybierzmy lokalizację, która nie jest bezpośrednio połączona z drogą, więc trasę trzeba będzie pobrać osobno. Miejscem docelowym jest katedra Notre-Dame w Paryżu, a punktem początkowym – dworzec kolejowy Gare de l’Est (48.87697775149635, 2.3592247806755564).

Gare de l'Est

Kierowca wyjeżdża ze stacji około 16 minut na północ od katedry Notre-Dame. Notre-Dame to słynna atrakcja turystyczna na wyspie, do której można dotrzeć mostem. W pobliżu znajdują się ulice jednokierunkowe i nie ma dużego parkingu, więc będzie to ciekawe wyzwanie.

Żądanie do Places API

Ten przykład żądania do interfejsu API Places używa „wyszukiwania tekstowego” do znalezienia katedry Notre-Dame. Więcej informacji znajdziesz w dokumentacji dla programistów. W tych przykładach „YOUR_KEY” to klucz interfejsu API, który masz włączony w Google Cloud Console dla interfejsów Google Maps Platform Places i Directions API. Szczegółowe wyjaśnienie znajdziesz w dokumentacji Pierwsze kroki z Google Maps Platform.

https://maps.googleapis.com/maps/api/place/textsearch/json?query=notre_dame&location=48.864716%2C2.349014&region=fr&key=YOUR_KEY

Odpowiedź na powyższe żądanie zawiera te współrzędne geograficzne:

  "results" : [
      {
        "formatted_address" : "Notre Dame, Paris",
        "geometry" : {
           "location" : {
               "lat" : 48.8527288,
                },
  ...

Jak widać, współrzędne rzeczywiście wskazują katedrę Notre-Dame.

Zdjęcie Notre Dame
Notre Dame na mapie

Jako programista lub dostawca usług możesz automatycznie wyświetlać kierowcy pytanie „Szukasz parkingu w pobliżu katedry Notre-Dame?”. Wrażenia użytkownika będą się różnić w zależności od urządzenia i ekranu, ale w tym przypadku warto rozważyć subtelne wyskakujące okienko z tekstem, które znika po krótkim czasie. Aby znaleźć parking w pobliżu katedry Notre-Dame, wykonaj wyszukiwanie tekstowe w Places API z ustawionymi parametrami type „parking” i radius „300”. Ten przykład będzie preferował wyniki w obszarach parkingowych w promieniu 300 metrów od katedry Notre-Dame.

https://maps.googleapis.com/maps/api/place/textsearch/json?query=parking
&location=48.8527288%2C2.3505635&region=fr&type=parking&radius=300&key=YOUR_KEY

Pierwszy wynik to „Parking Saemes Maubert-Lagrange” o współrzędnych 48.850591, 2.3486436. Użyjmy tej lokalizacji w następnej części, w której wysyłamy żądanie do Directions API.

Żądanie do Directions API

Aby znaleźć trasę ze stacji do parkingu w pobliżu katedry Notre-Dame, musisz wysłać żądanie do Directions API. Wystarczy ustawić parametry origin i destination. Więcej opcji znajdziesz w dokumentacji dla programistów.

https://maps.googleapis.com/maps/api/directions/json?origin=48.8767903,2.3592251&destination=48.850591%2C2.3486436&key=YOUR_KEY

Odpowiedź Directions API zwykle zawiera kilka propozycji tras. Każda trasa składa się z kilku „etapów”, a te z kolei z kilku „kroków” pokazujących odległość i współrzędne. Aby znaleźć współrzędne końcowe, do których można dotrzeć samochodem, użyj pola „end_location” ostatniego kroku ostatniego etapu wybranej trasy.

Ta lokalizacja może nie wydawać się najlepszym wyborem, ale gdy spojrzysz na mapę lub Google Street View, zobaczysz, że znajduje się ona w bardzo krótkiej odległości od katedry Notre-Dame – około 6–7 minut spacerem.

Trasa piesza z parkingu do katedry Notre Dame

Trasa piesza z parkingu do katedry Notre-Dame

Podsumowanie przykładu 1

Jak widać, znalezienie parkingu dla samochodu wymaga tylko kilku wywołań interfejsu API i wyświetlenia sugestii kierowcy. Dzięki temu użytkownicy oszczędzają czas, ponieważ nie muszą jeździć po ulicach jednokierunkowych ani szukać miejsca do zaparkowania w zatłoczonej atrakcji turystycznej. Podsumowując, wysłaliśmy te żądania do interfejsu API:

  • Żądanie do Places API, aby znaleźć współrzędne katedry Notre-Dame.
  • Żądanie do Places API, aby znaleźć parking w promieniu 300 metrów od tych współrzędnych.
  • Żądanie do Directions API, aby znaleźć trasę do parkingu.

Przykład 2. Nawigowanie do terminala na dużym lotnisku

Lotnisko Heathrow na mapie
Rozważmy inny przykład, w którym kierowca próbuje dotrzeć do dużego obszaru z wieloma lokalizacjami, interesującymi miejscami lub potencjalnymi punktami wysiadania. Kierowca wyjeżdża ze stadionu Wembley w Wielkiej Brytanii (51.557263604707224, -0.2794575145680608) i próbuje dotrzeć do terminala 5 lotniska Heathrow w Londynie. Zwykle użytkownik zaczyna wpisywać „Heathrow” i w większości przypadków wybiera jeden z pierwszych 2 lub 3 wyników, jeśli wygląda on na prawidłowy. Z wybranego wyniku możesz się dowiedzieć, że lokalizacja jest lotniskiem, odczytując wartości pola „types”. Pełną listę typów znajdziesz tutaj.

  "types" : [ "airport", "point_of_interest", "establishment" ],

Każdy, kto odwiedził duże lotnisko, wie jednak, że przesiadka między terminalami zajmuje sporo czasu, jeśli dotrzesz do niewłaściwej lokalizacji. W tym przypadku, ponieważ typ wyniku wyszukiwania to „airport”, warto automatycznie wysłać dodatkowe pytanie, aby wyszukać „terminal” przy użyciu lokalizacji lotniska Heathrow w Londynie (51.47016927594547, -0.45432767852489075). W przykładzie możesz też zobaczyć opcjonalne ograniczenie promienia wyszukiwania do 3000 metrów.

  https://maps.googleapis.com/maps/api/place/textsearch/json?query=terminal&location=51.47016927594547%2C-0.45432767852489075&region=gb&key=YOUR_KEY&radius=3000

Powyższe zapytanie zwraca listę terminali i poszczególnych punktów wysiadania na tych terminalach. Na liście wyników możemy znaleźć „London Heathrow Airport Terminal 5” i jego identyfikator miejsca:

 "place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",

Za pomocą parametru „place_id” możemy poinformować Directions API, że próbujemy dotrzeć do miejsca, a nie do dowolnych współrzędnych.

  https://maps.googleapis.com/maps/api/directions/json?origin=51.557263604707224,-0.2794575145680608&destination=place_id:ChIJtQRd6XVxdkgRTUGZtcsoGNc&key=YOUR_KEY

Podobnie jak w poprzednim przykładzie, odczytując wszystkie kroki w odpowiedzi JSON, znajdziesz ostatnią część podróży oraz współrzędne geograficzne miejsca docelowego (51.47079979999999,-0.4896765).

Terminal 5 na lotnisku Heathrow

Podsumowanie przykładu 2

Podobnie jak w poprzednim przykładzie, wysiłek programistyczny potrzebny do zapewnienia kierowcy lepszych wskazówek jest bardzo mały, a oszczędność czasu dla kierowcy jest łatwa do zmierzenia. Wysłaliśmy te żądania:

  • Żądanie do Places API, aby znaleźć lotnisko Heathrow.
  • Żądanie do Places API, aby znaleźć wszystkie terminale w pobliżu współrzędnych lotniska Heathrow.
  • Żądanie do Directions API, aby uzyskać trasę do terminala 5.

Podsumowanie

Jak widać, wysiłek programistyczny wymagany do zapewnienia klientom podróżującym samochodem usługi premium jest dość mały i pozwala łatwo pokazać, że myślisz o potrzebach klientów.

Na potrzeby programowania możesz używać wielu bibliotek i narzędzi, które pomogą Ci tworzyć usługi dla klientów. Zapoznaj się z naszym publicznie dostępnym repozytorium GitHub dla Google Maps Platform.

Następne kroki

Główny autor

Mikko Toivanen | Inżynier rozwiązań Google Maps Platform