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.
Uproszczony widok systemów, które pomagają kierowcy dotrzeć do miejsca docelowego samochodem
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).
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®ion=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.
|
|
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®ion=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
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
"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®ion=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).
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