Tìm đường đi từ điểm A đến điểm B.
Endpoint
https://maps.track-asia.com/route/v2/directions/{outputFormat}
outputFormat
outputFormat | Mô tả |
---|---|
json (khuyến nghị) | định dạng JSON |
xml | định dạng XML |
Tham số
Tham số | Giá trị | Bắt buộc | Mô tả | Ví dụ |
---|---|---|---|---|
origin | {vĩ độ},{kinh độ} (khuyến nghị) hoặc chuỗi địa chỉ | ✔ | Tọa độ hoặc chuỗi địa điểm bắt đầu. Nếu truyền chuỗi địa điểm, dịch vụ Directions sẽ tự động chuyển đổi thành tọa độ | 2 Nguyễn Huệ, phường Sài Gòn, thành phố Hồ Chí Minh |
destination | {vĩ độ},{kinh độ} (khuyến nghị) hoặc chuỗi địa chỉ | ✔ | Tọa độ hoặc chuỗi địa điểm kết thúc. Nếu truyền chuỗi địa điểm, dịch vụ Directions sẽ tự động chuyển đổi thành tọa độ | 10.795,106.72 |
key | Chuỗi | ✔ | Khóa API (sử dụng key của bạn, public_key bị giới hạn, chỉ dùng test) | public_key |
mode | driving (mặc định), motorcycling , walking , truck | Phương thức di chuyển | driving | |
new_admin | true , false (mặc định) | Trả về địa chỉ theo địa giới hành chính mới | true |
Mã ví dụ
Ví dụ này minh họa cách sử dụng định dạng JSON trong phản hồi:
https://maps.track-asia.com/route/v2/directions/json?new_admin=true&origin=10.761,106.68&destination=10.795,106.72&mode=driving&key=public_key
Ví dụ này minh họa cách sử dụng định dạng XML trong phản hồi:
https://maps.track-asia.com/route/v2/directions/xml?origin=10.761,106.68&destination=10.795,106.72&mode=driving&key=public_key
# JSON
curl -G "https://maps.track-asia.com/route/v2/directions/json" \
--data-urlencode "origin=2 Nguyễn Huệ, phường Sài Gòn, thành phố Hồ Chí Minh" \
--data-urlencode "destination=10.795,106.72" \
--data-urlencode "mode=driving" \
--data-urlencode "key=public_key"
# XML
curl -G "https://maps.track-asia.com/route/v2/directions/xml" \
--data-urlencode "origin=2 Nguyễn Huệ, phường Sài Gòn, thành phố Hồ Chí Minh" \
--data-urlencode "destination=10.795,106.72" \
--data-urlencode "mode=driving" \
--data-urlencode "key=public_key"
// JSON
const response = await fetch("https://maps.track-asia.com/route/v2/directions/json?new_admin=true&origin=10.761,106.68&destination=10.795,106.72&mode=driving&key=public_key")
const data = await response.json()
console.log(data)
// XML
const response = await fetch("https://maps.track-asia.com/route/v2/directions/xml?origin=10.761,106.68&destination=10.795,106.72&mode=driving&key=public_key")
const data = await response.text()
console.log(data)
Phản hồi
JSON Phản hồi
Phản hồi là một đối tượng JSON với cấu trúc như sau:
routes
: Mảng các đối tượng lộ trình. Mỗi lộ trình gồm:summary
: Tóm tắt tuyến đường (ví dụ: các tuyến phố chính).bounds
: Đối tượng vớinortheast
vàsouthwest
là tọa độ biên của tuyến đường.copyrights
: Bản quyền dữ liệu.legs
: Mảng các đoạn (leg), mỗi đoạn gồm:distance
: Đối tượng gồmtext
(dạng đọc được) vàvalue
(đơn vị mét).duration
: Đối tượng gồmtext
(dạng đọc được) vàvalue
(đơn vị giây).start_address
,end_address
: Địa chỉ đầu/cuối đoạn.start_location
,end_location
: Đối tượng cólat
vàlng
.steps
: Mảng các bước, mỗi bước gồm:distance
,duration
: Như trên.start_location
,end_location
: Như trên.polyline
: Polyline mã hóa cho bước này.html_instructions
: Hướng dẫn từng bước (HTML).travel_mode
: Phương thức di chuyển (ví dụ: "DRIVING").maneuver
: Loại thao tác (ví dụ: "turn-right").
overview_polyline
: Polyline mã hóa cho toàn tuyến đường.waypoint_order
: Mảng thứ tự các điểm dừng.
status
: Chuỗi trạng thái (ví dụ: "OK").geocoded_waypoints
: Mảng các đối tượng waypoint đã geocode, mỗi đối tượng gồm:geocoder_status
: Trạng thái geocoding.place_id
: Định danh địa điểm.types
: Mảng loại địa điểm.
Cấu trúc có thể có thêm các trường khác tùy theo tham số truy vấn và phiên bản API.
XML Phản hồi
Phản hồi XML có cấu trúc tương tự, các trường sẽ là các thẻ XML tương ứng với các trường JSON ở trên. Tuy nhiên, có một số khác biệt nhỏ sau:
- Kết quả XML được gói trong phần tử gốc
<DirectionsResponse>
. - JSON biểu thị các mục có nhiều phần tử bằng các mảng số nhiều (như
steps
vàlegs
), trong khi XML biểu thị các mục này bằng nhiều phần tử đơn lẻ (như<step>
và<leg>
). - JSON biểu thị thứ tự điểm dừng thông qua trường
waypoint_order
, trong khi XML biểu thị các mục này bằng các phần tử<waypoint_index>
riêng lẻ. - Các phần tử trống được chỉ định thông qua các mảng trống trong JSON, nhưng không có bất kỳ phần tử nào như vậy trong XML. Một phản hồi không tạo ra kết quả nào sẽ trả về một mảng tuyến đường trống trong JSON, nhưng không có phần tử
<route>
trong XML, chẳng hạn.
Lưu ý quan trọng
- Các trường trong phản hồi tuân theo Google Maps Places API standard - Directions API (Legacy).
Polyline tool
Các bước tiếp theo
- Thử API playground