Route (v1.1) — Chỉ đường¶
Ngừng hỗ trợ
Chúng tôi khuyên dùng Route v4 API cho tích hợp mới. Route v1.1 API sẽ ngừng hỗ trợ trong tương lai.
Route API của VIETMAP cho phép bạn tính và hiển thị tuyến đường tối ưu giữa hai hay nhiều vị trí trên bản đồ. Bạn khai điểm đầu và điểm cuối của hành trình, kèm các ràng buộc khác như loại phương tiện, rồi nhận về tuyến đường chi tiết để vẽ lên bản đồ. API cũng trả về tổng quãng đường, thời gian đi ước tính và hướng dẫn đi từng chặng. Bạn dùng Route API để làm các ứng dụng dẫn đường, lập kế hoạch vận tải và quản lý logistics.
Playground¶
Bạn có thể thử Route API trên Playground.
URL¶
https://maps.vietmap.vn/api/route?api-version=1.1&apikey={your-apikey}&point={point}&point={point}&points_encoded={points_encoded}&vehicle={vehicle}
Method¶
GET
Tham số¶
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|---|
| apikey | string | có | không | API key VIETMAP cấp cho tài khoản của bạn. Đăng ký tại đây |
| point | array string | có | không | Các điểm cần tính tuyến. Định dạng [latitude,longitude] — vĩ độ trước. Ít nhất phải có điểm đi và điểm đến; có thể thêm điểm trung gian. Số điểm tối đa tùy theo gói bạn đang dùng. Ví dụ: &point=10.762622,106.660172 |
| points_encoded | boolean | không | true | Chọn cách mã hóa tọa độ trả về trong points và snapped_waypoints. true: chuỗi polyline google polyline 5 — payload nhỏ, phía client phải dùng thư viện polyline để giải mã. false: trả về mảng tọa độ thô, đọc được ngay. Mặc định true. Chúng tôi khuyên để true để giảm kích thước JSON phản hồi. |
| vehicle | string | không | car | Enum: car, bike, foot, motorcycle. Loại phương tiện dùng để tính tuyến |
| optimize | string | không | false | Đặt true để chạy TSP sắp lại thứ tự điểm. Bình thường bạn đừng bật tham số này. (Chưa hỗ trợ — hiện gửi lên sẽ bị bỏ qua) |
| avoid | string | không | null | Tránh một số loại đường, ví dụ ferry (phà). Currently, this parameter is only enabled for the motorcycle vehicle type. |
Ví dụ¶
Đầu vào
https://maps.vietmap.vn/api/route?api-version=1.1&apikey={your-apikey}&point=10.79628438955497,106.70592293472612&point=10.801891047584164,106.70660958023404&vehicle=motorcycle
{
"license": "vietmap",
"code": "OK",
"messages": null,
"paths": [
{
"distance": 2194.4,
"weight": 351.4,
"time": 351400,
"transfers": 0,
"points_encoded": true,
"bbox": [
106.70594,
10.79479,
106.71154,
10.80325
],
"points": "}s{`Ac_hjSjAkCFQRu@Lu@F_@D]Ng@ZaALa@JY~AoDDEmBiBe@[WMg@M_@KmA]uA_@a@KkA]qA[[Gs@MUE_AKu@Co@Ew@CYAmAGeBKaAEsAKCQMQUGM?KBIFGHCJoBO{@Ck@AQ@MZAJAjAG|ACz@MnCEnAGlBCx@EjA?\\EvAEjBE~@Cr@F?HqBv@DBSDIBAl@HFADAVSD@JLB@h@BDADEDAJ@",
"instructions": [
{
"distance": 403.4,
"heading": 0,
"sign": 0,
"interval": [
0,
11
],
"text": "Tiếp tục theo Nguyễn Cửu Vân",
"time": 54800,
"street_name": "Nguyễn Cửu Vân",
"last_heading": null
},
/// More guide direction here
{
"distance": 58.7,
"heading": 0,
"sign": 0,
"interval": [
71,
79
],
"text": "Tiếp tục theo Đường Không Tên",
"time": 26300,
"street_name": "Đường Không Tên",
"last_heading": null
},
{
"distance": 0,
"heading": 0,
"sign": 4,
"interval": [
79,
79
],
"text": "Đích đến",
"time": 0,
"street_name": "Đường Không Tên",
"last_heading": null
}
],
"snapped_waypoints": "c_hjS}s{`AeDab@"
}
]
}
Mô tả phản hồi¶
| Parameter | Type | Description |
|---|---|---|
| license | string | Loại giấy phép của dữ liệu chỉ đường |
| code | string | Mã trạng thái cho biết yêu cầu thành công hay thất bại |
| messages | string | Thông báo thêm liên quan tới yêu cầu (nếu có) |
| paths | array | Mảng chứa thông tin tuyến: quãng đường, thời gian, v.v. |
Với mỗi tuyến trong mảng paths:
| Sub-Parameter | Type | Description |
|---|---|---|
| distance | number | Tổng quãng đường của tuyến, tính bằng mét |
| weight | number | Trọng số nội bộ mà bộ định tuyến gán cho tuyến, dùng để so sánh các tuyến với nhau |
| time | int | Tổng thời gian đi hết tuyến, tính bằng mili giây |
| transfers | int | Số lần chuyển tuyến trong hành trình |
| points_encoded | boolean | Cho biết points và snapped_waypoints là chuỗi mã hóa polyline hay mảng tọa độ JSON |
| bbox | array | Khung bao của tuyến. Định dạng [minLon, minLat, maxLon, maxLat] |
| points | string | Chuỗi điểm mã hóa theo google polyline 5. Nếu points_encoded là false thì trả về danh sách tọa độ dạng [lat,lng]. |
| instructions | array | Mảng hướng dẫn đi từng chặng |
| snapped_waypoints | string | Các điểm đã bám vào đường của tuyến (nếu có) |
Với mỗi hướng dẫn trong mảng instructions:
| Trường con | Kiểu | Mô tả |
|---|---|---|
| distance | double | Quãng đường tới hướng dẫn kế tiếp, tính bằng mét |
| heading | int | Hướng đi tại bước này, tính bằng độ (0 = Bắc). Có thể vắng mặt |
| sign | int | Mã hướng rẽ của bước hướng dẫn, xem bảng ký hiệu tại đây |
| interval | array | Hai chỉ số trong mảng points, ứng với điểm đầu và điểm cuối của đoạn mà hướng dẫn này nói tới. Ví dụ: [0, 49] |
| text | string | Mô tả việc người dùng cần làm để đi đúng tuyến |
| time | int | Thời lượng của bước này, tính bằng mili giây |
| street_name | string | Tên đường cần rẽ vào để đi đúng tuyến |
| last_heading | null | Hướng đi cuối của bước hướng dẫn (nếu có) |
