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 punktu orientacyjnego, potrzebuje nawigacji do pobliskiej lokalizacji, np. parkingu lub punktu dostępu. Wyobraź sobie kierowcę, który musi dojechać na lotnisko lub do centrum handlowego. Podczas dojazdu na lotnisko kierowca próbuje dotrzeć do terminalu lub punktu wysiadania, a nie do centrum lotniska. Podobnie parking obok centrum handlowego może być znacznie lepszą opcją dla użytkownika z samochodem. W takim przypadku, tworząc aplikację lub usługę, która ma prowadzić kierowcę, najpierw znajdź miejsce docelowe, a potem zaproponuj kierowcy opcjonalne miejsca docelowe w pobliżu. Dzięki temu możesz zapewnić klientom lepszą obsługę i pokazać, że cenisz ich czas. Wymaga to niewielkiego, ale przemyślanego nakładu pracy deweloperskiej, która wykorzystuje dane o lokalizacji dostarczane przez Google Maps Platform.

[System Context] High level navigation systems
Simplified view of systems involved when guiding the driver to a location with a car
Schemat systemów wysokiego poziomu

Pokażemy, jak używać interfejsów Places API i Directions API w sekwencji lub w połączeniu, aby znaleźć odpowiednie miejsce do parkowania w pobliżu miejsca docelowego. To rozwiązanie ma na celu wyeliminowanie niepewności i wielu interakcji związanych ze znalezieniem miejsca parkingowego podczas jazdy w pobliżu miejsca docelowego. Przyjrzyjmy się szczegółowo 2 przykładom, jak można wdrożyć te przypadki.

Przykład 1. Atrakcja turystyczna bez parkingu

Wybierzmy lokalizację, która nie jest bezpośrednio połączona z drogą, aby trasę trzeba było pobrać osobno. Miejscem docelowym będzie 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 odjeżdża ze stacji około 16 minut na północ od katedry Notre Dame. Notre Dame to słynna atrakcja turystyczna na wyspie, na którą można dostać się mostem. W pobliżu znajdują się ulice jednokierunkowe i nie ma dużego parkingu, więc będzie to ciekawe wyzwanie.

Żądanie do interfejsu Places API

Ten przykładowy request do interfejsu Places API 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 Places API i Directions API Google Maps Platform. Szczegółowe wyjaśnienie znajdziesz w dokumentacji pierwszych kroków 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 wskazują katedrę Notre Dame.

Zdjęcie Notre Dame
Notre Dame na mapie

Jako deweloper lub dostawca usług możesz automatycznie wyświetlać kierowcy pytanie „Szukasz parkingu w pobliżu katedry Notre Dame?”. Sposób wyświetlania będzie zależeć od urządzenia i ekranu, ale w tym przypadku warto rozważyć subtelny wyskakujący tekst, który znika po krótkim czasie. Aby znaleźć parking w pobliżu katedry Notre Dame, wykonaj wyszukiwanie tekstowe w interfejsie Places API z parametrami type „parking” i radius „300”. Ten przykład spowoduje, że wyniki będą bardziej ukierunkowane na parkingi w odległości do 300 m 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 interfejsu Directions API.

Żądanie do interfejsu Directions API

Aby znaleźć trasę ze stacji na parking w pobliżu katedry Notre Dame, musisz wysłać żądanie do interfejsu Directions API. Wystarczy ustawić parametry miejsca początkowego i docelowego. 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ź interfejsu Directions API zwykle zawiera kilka propozycji tras. Każda trasa składa się z wielu „etapów”, a te z kolei z wielu „kroków” pokazujących odległość i współrzędne. Aby znaleźć końcowe współrzędne, do których można dotrzeć samochodem, użyj pola „end_location” ostatniego kroku ostatniego odcinka wybranej trasy.

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

Trasa piesza z parkingu do katedry Notre Dame

Trasa piesza z parkingu do katedry Notre Dame

Podsumowanie przykładu 1

Jak widać, znalezienie miejsca parkingowego dla samochodu wymaga tylko kilku wywołań interfejsu API i wyświetlenia sugestii kierowcy. Dzięki temu użytkownicy zaoszczędzą czas, ponieważ nie będą jeździć po ulicach jednokierunkowych ani szukać miejsca do zaparkowania w zatłoczonym miejscu turystycznym. Podsumowując, wykonaliśmy te żądania interfejsu API:

  • Żądanie do interfejsu Places API dotyczące znalezienia współrzędnych katedry Notre Dame
  • Żądanie wysłane do interfejsu Places API w celu znalezienia parkingu w odległości 300 metrów od tych współrzędnych.
  • Żądanie do interfejsu Directions API, aby znaleźć trasę do obszaru parkingowego

Przykład 2. Nawigacja do terminalu 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, punktami POI lub potencjalnymi miejscami docelowymi. Kierowca wyjeżdża ze stadionu Wembley w Wielkiej Brytanii (51.557263604707224, -0.2794575145680608) i chce dojechać do terminalu 5 lotniska Heathrow w Londynie. Zazwyczaj użytkownik zaczyna wpisywać „Heathrow” i w większości przypadków wybiera jeden z 2–3 pierwszych wyników, jeśli wygląda 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 był na dużym lotnisku, wie jednak, że przemieszczanie się między terminalami zajmuje sporo czasu, jeśli przybędzie się w niewłaściwe miejsce. W tym przypadku, ponieważ typ wyniku wyszukiwania to „lotnisko”, warto automatycznie wysłać kolejne zapytanie o „terminal” z użyciem lokalizacji lotniska Heathrow w Londynie (51.47016927594547, -0.45432767852489075). W przykładzie widać też 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 odbioru 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ć interfejs Directions API, że chcemy 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, po przeczytaniu wszystkich kroków w odpowiedzi JSON znajdziesz ostatnią część podróży oraz współrzędne geograficzne lokalizacji końcowej (51.47079979999999,-0.4896765).

Terminal 5 na lotnisku Heathrow

Podsumowanie przykładu 2

Podobnie jak w poprzednim przykładzie, wysiłek związany z opracowaniem ulepszonych wskazówek dla kierowcy jest bardzo mały, a korzyści w postaci zaoszczędzonego czasu są łatwe do zmierzenia. Wykonaliśmy te prośby:

  • Żądanie wysłane do interfejsu Places API w celu znalezienia lotniska Heathrow
  • Żądanie do interfejsu Places API, aby znaleźć wszystkie terminale w pobliżu lotniska Heathrow
  • Żądanie do interfejsu Directions API dotyczące uzyskania trasy do terminalu 5

Podsumowanie

Jak widać, nakład pracy potrzebny do zapewnienia klientom podróżującym samochodem usługi premium jest dość mały i pozwala łatwo pokazać, że dbasz o ich potrzeby.

Na potrzeby programowania możesz używać wielu dostępnych 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 działania

Główny autor

Mikko Toivanen | Google Maps Platform Solutions Engineer