Istnieje nowsza wersja tego dokumentu z przykładami korzystania z nowego interfejsu Places API i interfejsu Routes API.
Zwykle, gdy użytkownik jedzie do punktu zainteresowania, 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. Podczas jazdy na lotnisko kierowca stara się dotrzeć do terminalu lub miejsca wysadzania, a nie do centrum lotniska. Podobnie parking obok centrum handlowego może być znacznie lepszą opcją dla użytkownika z samochodem. W takim przypadku, gdy tworzysz aplikację lub usługę, która ma służyć do kierowania kierowcą, najpierw znajdź miejsce docelowe, a potem zaproponuj kierowcy opcjonalne miejsca docelowe w pobliżu tego miejsca. Dzięki temu możesz świadczyć lepsze usługi swoim klientom i pokazywać, że cenisz ich czas, a dodatkowo możesz wykorzystać niewielkie, ale inteligentne działania programistyczne, które wykorzystują dane o lokalizacji udostępniane przez Google Maps Platform.
Pokażemy, jak używać interfejsów Places API i Directions API pojedynczo lub razem, aby znaleźć odpowiednie miejsce do parkowania w pobliżu miejsca docelowego. Rozwiązanie to ma na celu wyeliminowanie niepewności i wielu interakcji związanych ze znajdowaniem miejsca do parkowania podczas jazdy w pobliżu miejsca docelowego. Przyjrzyjmy się dwóm przykładom, jak można zastosować te przypadki.
Przykład 1. Atrakcja turystyczna bez parkingu
Wybierzmy lokalizację, która nie jest bezpośrednio połączona z drogą, aby trasa musiała być pobierana osobno. Punktem docelowym jest Notre Dame w Paryżu, a jako punkt początkowy użyjemy dworca kolejowego Gare de l’Est (48.87697775149635, 2.3592247806755564).
Kierowca opuszcza stację około 16 minut na północ od Notre Dame. Notre Dame to słynna atrakcja turystyczna na wyspie, do której można dojechać przez most. Na wyspie znajdują się też ulice jednokierunkowe. Nie ma tam jednak dużych parkingów, więc będzie to ciekawe wyzwanie.
Żądanie do interfejsu Places API
W tym przykładzie żądanie do interfejsu Places API korzysta z funkcji „wyszukiwanie tekstowe”, aby znaleźć Notre Dame. Więcej informacji znajdziesz w dokumentacji dla programistów. W tych przykładach zmienna „YOUR_KEY” to klucz API interfejsów Places API i Directions API z Google Maps Platform włączonych w Google Cloud Console. Więcej informacji 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 wskazują na katedrę Notre Dame.
|
|
Jako deweloper lub dostawca usług możesz automatycznie wyświetlać kierowcy pytanie „Szukasz parkingu w pobliżu 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ć wyświetlanie ulotki z tekstem, która zniknie po chwili. Aby znaleźć parking w pobliżu Notre Dame, wykonaj wyszukiwanie tekstowe w interfejsie Places API z parametrami type „parking” i radius „300”. W tym przykładzie wyniki będą dotyczyć parkingów w odległości do 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
Pierwszym wynikiem jest „Parking Saemes Maubert-Lagrange” o współrzędnych 48.850591, 2.3486436. Użyjemy 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 do parkingu w pobliżu Notre Dame, musisz wysłać żądanie do interfejsu Directions API. Wystarczy ustawić parametry źródła i miejsca 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 Direction API zwykle zawiera kilka propozycji tras. Każda trasa składa się z kilku „etapów”, a te z kolei zawierają wiele „kroków” z odległością i współrzędnymi. Aby znaleźć końcowe współrzędne, do których można dojechać samochodem, użyj pola „end_location” ostatniego kroku ostatniego etapu wybranej trasy.
Ta lokalizacja może wydawać się nie najlepszym wyborem, ale gdy spojrzysz na mapę lub Google Street View, zobaczysz, że jest ona bardzo blisko Notre Dame (ok. 6–7 minut pieszo).
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ą musieli jeździć po ulicach jednokierunkowych ani szukać miejsca do zaparkowania samochodu w tłoku wokół atrakcji turystycznych. Podsumowując, wykonaliśmy te prośby o dostęp do interfejsu API:
- żądanie interfejsu Places API w celu znalezienia współrzędnych Notre Dame
- Zapytanie do interfejsu Places API, aby znaleźć parking w odległości do 300 metrów od tych współrzędnych
- żądanie interfejsu Directions API w celu znalezienia trasy do obszaru parkingowego,
Przykład 2. Prowadzenie do terminalu na dużym lotnisku
"types" : [ "airport", "point_of_interest", "establishment" ],
Każdy, kto był w wielkim porcie lotniczym, wie jednak, że przesiadka między terminalami zajmuje sporo czasu, jeśli przyleci się do niewłaściwego. W tym przypadku, ponieważ typ wyniku wyszukiwania to „lotnisko”, warto automatycznie wykonać kolejne zapytanie, aby wyszukać „terminal” z lokalizacją lotniska Londyn-Heathrow (51.47016927594547, -0.45432767852489075). W tym 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®ion=gb&key=YOUR_KEY&radius=3000
Powyższe zapytanie zwraca listę terminali i poszczególnych punktów dostawy w tych terminalach. Na liście wyników znajdziemy „Londyńskie lotnisko Heathrow, Terminal 5” oraz identyfikator miejsca:
"place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",
Za pomocą parametru „place_id” możemy poinformować interfejs 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, po przeczytaniu wszystkich kroków w odpowiedzi w formacie JSON znajdziesz ostatnią część trasy i współrzędne geograficzne lokalizacji końcowej (51.47079979999999,-0.4896765).
Podsumowanie przykładu 2
Podobnie jak w poprzednim przykładzie, wysiłek związany z rozwojem, aby zapewnić kierowcy lepsze wskazówki, jest bardzo niewielki, a oszczędności czasu dla kierowcy można łatwo zmierzyć. Wykonaliśmy te prośby:
- Żądanie wysłane do interfejsu Places API w celu znalezienia lotniska Heathrow
- żądanie interfejsu Places API służące do znajdowania wszystkich terminali w pobliżu współrzędnych lotniska Heathrow
- Żądanie do Directions API o uzyskanie trasy do terminala 5
Podsumowanie
Jak widzisz, wysiłek programistyczny wymagany do świadczenia usług premium dla klientów podróżujących samochodem jest raczej niewielki i umożliwia łatwe zademonstrowanie, że bierzesz pod uwagę potrzeby klientów.
Do celów programistycznych możesz używać wielu bibliotek i narzędzi, które pomogą Ci tworzyć usługi dla klientów. Zapoznaj się z naszym publicznym repozytorium GitHub na potrzeby Google Maps Platform.
Dalsze działania
Główny autor
Mikko Toivanen | Inżynier rozwiązań Google Maps Platform