Access

 MS Access & Google Directions API

Google Directions API - request

Jest to usługa realizowana za pomocą żądania HTTP. Pozwala wyznaczyć dokładną trasę podróży z wykorzystaniem różnych środków komunikacji (samochód, rower lub pieszo). Trasę określamy poprzez podanie punktu początkowego i końcowego oraz punktów pośrednich tzw. „waypointy”. Poszczególne punkty możemy przekazać w postaci ciągu tekstowego (np. Lublin, PL), lub przekazać w postaci współrzędnych geograficznych.

Ograniczenia:
  • Dzienny limit zapytań za pomocą usługi Google Directions API wynosi 2 500 tras.
  • Dla użytkownika prywatnego żądanie nie może zawierać więcej niż 8 punktów pośrednich („waypointów”) w przekazywanej trasie.
  • Klienci biznesowi mogą przekazywać dziennie do 100 000 żądań wyznaczenia trasy. Każda trasa może zawierać maksymalnie do 23 punktów pośrednich („waypointów”).
  • Całkowita długość zapytania „Directions API URLs” przed zakodowaniem adresu (URL Encoding) nie może zawierać więcej niż 2048 znaków.
Uwaga:
  • Usługa Google Directions API może być używana tylko w połączeniu z wyświetleniem wyników na mapie Google.
  • Używanie usługi Google Directions API bez wyświetlenia mapy, do której odnosi się żądanie HTTP, jest zabronione.
  • Każde żądanie HTTP dotyczące trasy, generuje określone prawa autorskie i ostrzeżenia, które muszą być pokazane użytkownikowi. Szczegółowe informacje na temat dozwolonego korzystania z usługi Google Directions API, znajdują się na stronie: Maps API Terms of Service License Restrictions.

Wywołanie żądania Directions API:

 Żądanie Google Directions API przyjmuje następującą postać:

http://maps.googleapis.com/maps/api/directions/output?parameters
output:
może przyjmować jedną z wartości:
json:
dane zwracane będą w tekstowym formacie JSON (JavaScript Object Notation).
xml:
dane zwracane będą w tekstowym formacie XML (Extensible Markup Language).
parameters:
lista parametrów rozdzielonych znakiem ampersand (&). Niektóre parametry są wymagane, ale większość parametrów jest opcjonalna (usługa Google Directions API stosuje wtedy wartość domyślną, lub pomija niewymagany parametr). Lista parametrów, które mogą być przekazane w adresie URL, oraz ich dopuszczalne wartości wymienione są poniżej:
origin:
(wymagany) - adres miejsca startowego, w postaci „adres, miasto, województwo” lub „adres, miasto, kod pocztowy”. Tak przekazany adres zostanie przekonwertowany na współrzędne geograficzne. Punkt startowy można przekazać bezpośrednio jako współrzędne geograficzne w postaci: szerokość/długość (bez spacji pomiędzy przekazywanymi współrzędnymi).
destination:
(wymagany) - adres miejsca docelowego, lub jego współrzędne geograficzne w postaci: szerokość/długość (bez spacji pomiędzy przekazywanymi współrzędnymi).
mode:
(opcjonalny, wartość domyślna 'driving') - określa sposób przemieszczania się po trasie, (rodzaj środka transportu). Google Directions API obsługuje następujące tryby podróży:
 
driving:
(wartość domyślna) - oznacza przemieszczanie się samochodem z wykorzystaniem sieci drogowej.
walking:
przemieszczanie się pieszo po szlakach wędrownych, ścieżkach i chodnikach.
bicycling:
jazda rowerem po ścieżkach i drogach rowerowych (opcja dostępna tylko na terenie USA).
waypoints:
(opcjonalny) - określa tablicę zawierającą punkty pośrednie („waypointy”), przez które ma przebiegać wyznaczana trasa. Jest to ciąg znaków składający się z poszczególnych adresów (punktów) rozdzielonych znakiem '|'. Poszczególne punkty pośrednie („waypointy”) przekazujemy jako adres punktu w postaci „adres, miasto, województwo” lub „adres, miasto, kod pocztowy”, Tak przekazany adres zostanie przekonwertowany na współrzędne geograficzne. Punkt startowy można przekazać bezpośrednio jako współrzędne geograficzne w postaci: szerokość/długość (bez spacji pomiędzy przekazywanymi współrzędnymi).
Dla przykładu, przedstawiam poniżej żądanie wyznaczenia trasy Kraków przez Kielce, Radom, Puławy, do Lublina: http://maps.googleapis.com/maps/api/directions/xml?origin=Krakow&destination=Lublin&waypoints=Kielce|Radom|Pulawy&sensor=false Domyślnie usługa Google Directions API wyznacza trasę poprzez punkty pośrednie według kolejności w jakiej zostały przekazane w żądaniu HTTP. W tym przypadku sami musimy zadbać o prawidłową kolejność punktów pośrednich w parametrze waypoints.
 
optimize:
(opcjonalny) - pierwszy argument parametru waypoints, który dla wartości TRUE zezwala usłudze Google Directions API na optymalne rozmieszczanie punktów pośrednich, (tzw. problem komiwojażera), w celu uzyskania jak najbardziej efektywnej trasy.
Dla przykładu, przedstawiam poniżej żądanie wyznaczenia trasy z Krakowa do Lublina przez Puławy, Kielce, Radom, (punkty pośrednie zostały przekazane w dowolnej kolejności). Argument optimize=true zezwala usłudze Google Directions API na optymalizację wyznaczanej trasy: http://maps.googleapis.com/maps/api/directions/xml?origin=Krakow&destination=Lublin&waypoints=optimize:true|Pulawy|Kielce|Radom&sensor=false Jeżeli przekazaliśmy do usługi Google Directions API argument optimize=true zezwalający na optymalizację kolejności punktów pośrednich, to w polu waypoint_order dla obiektu JSON, a w polach <waypoint_index> dla obiektu XML zostanie zwrócona zoptymalizowana kolejność punktów pośrednich. Indeks zwracanej tablicy zaczyna się od 0 (ZERA).
obiekt JSON
"waypoint_order" : [ 1, 2, 0 ]
obiekt XML
<waypoint_index>1</waypoint_index>
<waypoint_index>2</waypoint_index>
<waypoint_index>0</waypoint_index>
Przekazaliśmy tablicę wayponts w kolejności: 0;1;2
wayponts(0)=Puławy:  wayponts(1)=Kielce:  wayponts(2)=Radom
która została zoptymalizowana do postaci: 1;2;0
wayponts(1)=Kielce:  wayponts(2)=Radom:  wayponts(0)=Puławy
avoid:
(opcjonalny) - określa przez jakie rodzaje dróg nie powinna przebiegać wytyczana trasa. Aktualnie parametr ten obsługuje dwa argumenty:
 
tolls:
wytyczana trasa nie powinna przebiegać przez płatne drogi i płatne mosty.
highways:
wytyczana trasa nie powinna przebiegać przez autostrady.
Uwaga: dodanie ograniczeń co do przebiegu trasy, nie wyklucza zwrócenia trasy przebiegającej przez płatne odcinki, lecz powoduje tylko przesunięcie tych tras na dalsze pozycje w wynikach wyszukiwania.
units:
(opcjonalny) - określa, jaki system jednostek miar zostanie użyty przez usługę Google Directions API do wyświetlenia wyników.
 
metric:
zastosowany zostanie system metryczny. Tekstowe odległości będą zwracane w postaci kilometrów i metrów.
imperial:
zastosowany zostanie Brytyjski (jednostki imperialne) system miar. Tekstowe odległości będą zwracane w postaci mil i stóp.
Uwaga: zastosowany system miar dotyczy tylko tekstowych pól wyświetlających dane o odległościach. Pola dokumentu zawierające wartości odnoszące się do odległości, zawsze są wyrażone w metrach.
region:
(opcjonalny) - parametr ten przyjmuje wartość cTLD (kod krajowej domeny najwyższego poziomu) i informuje usługę Google Directions API, by zwracała wyniki związane z konkretnym regionem określonym w przekazanym parametrze.
Przykładowo, próba wytyczenia trasy pomiędzy Toledo i Madrytem, bez określenia regionu, kończy się niepowodzeniem, ponieważ Toledo zostaje zinterpretowane jako miasto w stanie Ohio. Zwracany status żądania ma wartość ZERO_RESULTS co odpowiada opisowi: „Nie można znaleźć trasy pomiędzy punktem startowym, a docelowym.” Po przekazaniu parametru region="es" i ponownym wysłaniu żądania, kończy się ono sukcesem. Status żądania ma wartość OK.
sensor:
(wymagany) - określa, czy żądanie pochodzi z urządzenia wyposażonego w czujnikiem położenia. Może przyjmować wartość true lub false.