Route API Door‑to‑Door
API định tuyến (Door‑to‑Door) giúp bạn tính đường giữa hai điểm một cách đơn giản và thân thiện.
- Khi điểm đầu/cuối không thể đi được bằng xe vào tận nơi, hệ thống sẽ tự thêm đoạn đi bộ phù hợp.
- Hai chế độ: Tiêu chuẩn (mặc định) và Door‑to‑Door.
- Kết quả trả về gồm metadata báo cần đi bộ ở đầu/cuối và mảng routes (1–3 tuyến) tương ứng.
Truy xuất Route API Door‑to‑Door
Loading...
Door‑to‑Door (POST)
| Tham số bắt buộc | Kiểu dữ liệu | Mô tả |
|---|---|---|
locations | array | Mảng đối tượng vị trí. Xem Valhalla API Reference để biết các tùy chọn location chi tiết. |
costing | string | Chế độ di chuyển. Xem Valhalla API Reference để biết tất cả các chế độ hỗ trợ. |
| Tham số tùy chọn | Kiểu dữ liệu | Mô tả |
|---|---|---|
door_to_door | boolean | Bật định tuyến Door‑to‑Door đa phương thức. Khi true, kết hợp đi bộ với phương tiện để dẫn đường từ cửa đến cửa. |
costing_options | object | Tùy chọn theo từng chế độ di chuyển. Xem Valhalla API Reference. |
units | string | Đơn vị khoảng cách: kilometers/km hoặc miles/mi. Xem Valhalla API Reference. |
language | string | Ngôn ngữ hướng dẫn rẽ (IETF BCP 47). Xem Valhalla API Reference. |
format | string | Định dạng đầu ra: json, osrm, gpx, pbf. Xem Valhalla API Reference. |
Other options | - | Tất cả các tham số khác của Valhalla đều được hỗ trợ. Xem Valhalla API Reference. |
Chi tiết tham số Door‑to‑Door
Khi door_to_door = true:
| Thông số | Yêu cầu |
|---|---|
| Costing Modes | Hỗ trợ: auto, bus, truck, taxi. |
| Locations | Chính xác 2 địa điểm (chỉ điểm đi và điểm đến). |
| Alternates | alternates — Luôn bằng 0 (không hỗ trợ đường thay thế). |
Cách hoạt động
- Tính tuyến phương tiện trước: Dịch vụ tính toán tuyến đường chính cho phương tiện trước tiên.
- Thêm đi bộ khi lệch: Nếu điểm bắt đầu/kết thúc của tuyến phương tiện khác đáng kể so với vị trí yêu cầu, hệ thống sẽ thêm các đoạn đi bộ nối giữa các điểm.
- Tối ưu đoạn đi bộ: Các đoạn đi bộ được kiểm tra và tối ưu để giảm quãng đường đi bộ.
- Kết quả: Phản hồi có thể gồm tối đa 3 phân đoạn: Đi bộ → Phương tiện → Đi bộ.
Mẫu yêu cầu:
{
"locations": [
{ "lat": 10.7969, "lon": 106.6792 },
{ "lat": 10.8103, "lon": 106.7042 }
],
"costing": "auto",
"door_to_door": true
}
Mẫu phản hồi (rút gọn):
{
"status": "OK",
"metadata": {
"needsWalkingToStart": false,
"needsWalkingToEnd": true,
"calculatedDistanceToEnd": 39
},
"data": {
"routes": [
{
/* Tuyến đường đi bộ: Điểm bắt đầu → Điểm đón (chế độ đi bộ) */
},
{
/* Tuyến đường bằng phương tiện: Điểm đón → Điểm trả (chế độ phương tiện) */
},
{
/* Tuyến đường đi bộ: Điểm trả → Điểm đến (chế độ đi bộ) */
}
]
},
"licence": "© GTEL Maps"
}
Các trường phản hồi (metadata):
| Trường | Kiểu | Mô tả |
|---|---|---|
needsWalkingToStart | boolean | Có thêm đoạn đi bộ ở đầu tuyến hay không. |
calculatedDistanceToStart | number | Khoảng cách (mét) từ điểm xuất phát đến điểm đón phương tiện. |
needsWalkingToEnd | boolean | Có thêm đoạn đi bộ ở cuối tuyến hay không. |
calculatedDistanceToEnd | number | Khoảng cách (mét) từ điểm trả phương tiện đến điểm đích. |
Mảng data.routes có 1–3 tuyến tùy nhu cầu đi bộ:
- 1 tuyến: Không cần đi bộ (chỉ phương tiện).
- 2 tuyến: Cần đi bộ ở đầu HOẶC ở cuối.
- 3 tuyến: Cần đi bộ ở cả đầu VÀ cuối.
Door‑to‑Door (GET)
Loading...
| Tham số bắt buộc | Kiểu dữ liệu | Mô tả |
|---|---|---|
json | string | Chuỗi JSON (URL‑encoded) chứa cùng cấu trúc như body của Door‑to‑Door (POST): gồm locations (2 điểm), costing, door_to_door: true. Có thể kèm costing_options, units, language, format. |
- Phản hồi khi gọi GET giống Door‑to‑Door (POST) ở trên.
- Khác nhau ở phương thức: GET dùng tham số query
json; POST dùng body JSON.