Wywołanie żądania Directions API:
Żądanie Google Directions API przyjmuje następującą postać:
http://maps.googleapis.com/maps/api/directions/output?parametersoutput:
- 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.