Bỏ qua

Route — Chỉ đường

Route


Route v4 tính tuyến đường giữa hai hay nhiều điểm cho car, motorcycle, truck, container (có xét tải trọng). Trả về quãng đường, thời gian, polyline và hướng dẫn từng chặng; bật annotations=toll để nhận thêm danh sách trạm thu phí và tổng phí toll_cost.

Playground

Thử ngay trên Playground

Gọi thử Route v4 với dữ liệu thật, không cần viết code: Mở Playground · hoặc xem trên Live Map

Tích hợp AI Agent ✨ MỚI

Tải bộ tài liệu đã tối ưu cho AI agent: Routing Agent Doc

Hoặc dùng thử bằng Postman.

URL

https://maps.vietmap.vn/api/route/v4?apikey={your-apikey}&point=10.762622,106.660172&point=10.801891,106.706610&points_encoded=true&vehicle=car&annotations=congestion,toll

Method

GET

Tham số

Tham số Kiểu Bắt buộc Mặc định Mô tả
apikey string không API key VIETMAP cấp cho tài khoản của bạn. Đăng ký tại đây
point array string 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 pointssnapped_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, motorcycle, truck, container. Loại phương tiện dùng để tính tuyến — quyết định tốc độ và các đường được phép đi.
optimize string không false Chưa hỗ trợ — server bỏ qua tham số này. Dự kiến: true để tự sắp lại thứ tự các điểm trung gian (TSP).
avoid string không null Loại đường cần tránh khi tính tuyến. Giá trị cho phép: ferry (phà). Ví dụ: avoid=ferry
capacity integer tùy điều kiện null Chỉ bắt buộc khi vehicle=truck, là khối lượng xe tải tính bằng kilogram
time string không 2025-08-01T12:01:00Z Giờ khởi hành theo chuẩn ISO-8601 (UTC+0). Bỏ trống thì lấy thời điểm hiện tại. Ví dụ: time=2025-08-01T12:01:00Z
alternative boolean không false Đặt true để nhận thêm tuyến thay thế ngoài tuyến tốt nhất. Ví dụ: alternative=true
heading number không null Hướng xe đang đi, tính bằng độ trong dải 0360, 0 = hướng Bắc. Dùng để chọn chiều xuất phát đúng làn. Ví dụ: heading=45
annotations string không null Bật thêm dữ liệu phụ cho tuyến. Truyền danh sách khóa cách nhau bằng dấu phẩy. Giá trị cho phép: congestion, congestion_distance, toll. Truyền toll sẽ điền dữ liệu vào hai trường toll_costtolls của từng tuyến.
Ví dụ: annotations=congestion,toll. (Bật annotations làm tăng thời gian tính và kích thước phản hồi.)

Ví dụ

Đầu vào

https://maps.vietmap.vn/api/route/v4?apikey={apikey}&point=18.7338,105.6209&point=17.75697,106.12351&vehicle=truck&capacity=2000&annotations=congestion,toll

Phản hồi

{
  "license": "vietmap",
  "code": "OK",
  "paths": [
    {
      "distance": 194465.7,
      "weight": 10854.3,
      "time": 10854078,
      "transfers": 0,
      "points_encoded": true,
      "bbox": [105.6139, 17.75471, 106.37462, 18.73474],
      "points": "ccjqBkhtcS`E{DhFyDzDeBjHkC`Bg@xEkAnEaA|LwCxH{A~Ag@rDs@hA]bAg@|BwA~@}@dAmApG}BdHiBbCo@...",
      "instructions": [
        {
          "distance": 3590.7,
          "heading": 0,
          "sign": 0,
          "interval": [0, 49],
          "text": "",
          "time": 861754,
          "street_name": ""
        },
        {
          "distance": 1191,
          "heading": 0,
          "sign": 2,
          "interval": [49, 67],
          "text": "Quốc Lộ 46",
          "time": 95123,
          "street_name": "Quốc Lộ 46"
        },
        /// More guide direction here
        {
          "distance": 0,
          "heading": 0,
          "sign": 4,
          "interval": [1555, 1555],
          "text": "",
          "time": 0,
          "street_name": ""
        }
      ],
      "snapped_waypoints": "ccjqBkhtcSdl~DydaB",
      "toll_cost": 59000,
      "tolls": [
        {
          "id": 528,
          "name": "Trạm Thu Phí Nút Giao Quốc Lộ 46B",
          "address": "Cao Tốc Diễn Châu Bãi Vọt",
          "type": "entry",
          "price": 0
        },
        {
          "id": 544,
          "name": "Trạm Thu Phí Km 479+200",
          "address": "Cao Tốc Diễn Châu Bãi Vọt",
          "type": "exit",
          "price": 59000,
          "prices": {
            "523": 140000,
            "524": 96000,
            "528": 59000
          }
        }
      ]
    }
  ]
}

Mô tả phản hồi

Trường Kiểu Mô tả
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. Chi tiết ở Các mã trạng thá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:

Trường con Kiểu Mô tả
distance number Tổng quãng đường của tuyến, tính bằng mét. Ví dụ: 194465.7 (~194 km)
weight number Chi phí nội bộ mà bộ định tuyến dùng để xếp hạng tuyến. Không có đơn vị; chỉ dùng để so sánh các tuyến trong cùng một response.
time int Tổng thời gian đi hết tuyến, tính bằng mili-giây. Ví dụ: 10854078 (~3 giờ)
transfers int Số lần chuyển tuyến cần thiết
points_encoded boolean Cho biết pointssnapped_waypoints là chuỗi mã hóa polyline hay mảng JSON tọa độ
bbox array Khung bao của hình học 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_encodedfalse thì points trả về danh sách [lat,lng] format.
instructions array Mảng chứa hướng dẫn đi từng chặng. Chi tiết ở Instruction Object Model
snapped_waypoints string Các điểm đã bám vào đường của tuyến (nếu có)
annotations object[] Dữ liệu phụ theo từng đoạn của tuyến (mức kẹt xe, quãng đường kẹt). Chỉ có khi request kèm annotations=congestion hoặc congestion_distance. Chi tiết ở Annotation Object Model
toll_cost number Tổng phí cầu đường của tuyến, tính bằng VNĐ, theo đúng vehicle đã gửi. Chỉ có khi request kèm annotations=toll. Ví dụ: 140000
tolls object[] Mảng các trạm thu phí dọc tuyến. Chi tiết ở Toll Object Model (nếu có)

Instruction Object Model

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. Ví dụ: 192
heading int Hướng đi tại đầu bước này, tính bằng độ (0360, 0 = Bắc) (nếu có)
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 (đã giải mã), ứ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] nghĩa là bước này trải từ điểm thứ 0 đến điểm thứ 49.
text string Mô tả việc người dùng cần làm để đi đúng tuyến.
time int Thời gian đi hết bước này, tính bằng mili-giây. Ví dụ: 95123
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ó)

Annotation Object Model

Tên Kiểu Mô tả
congestion object[] Mảng mức kẹt xe của từng đoạn. (nếu có)
Các giá trị: low, moderate, heavy, severe, unknown.
Dựa trên tốc độ trung bình (km/h):
low: ≥ 40;
moderate: 20–<40;
heavy: 10–<20;
severe: >0–≤10.
congestion_distance object[] Mảng quãng đường (mét), chỉ gồm các đoạn có mức kẹt từ heavy trở lên. (nếu có)
  • Lưu ý: khi tính tuyến với > 2 điểm, dữ liệu annotations có thể không chính xác

Toll Object Model

Với mỗi trạm thu phí trong mảng tolls:

Trường con Kiểu Mô tả
id int Mã định danh của trạm thu phí.
name string Tên trạm thu phí.
address string Địa chỉ hoặc tuyến đường đặt trạm thu phí.
type string Vai trò của trạm trên tuyến. Enum: entry (trạm xe vào), exit (trạm xe ra, cũng là nơi tính phí).
price number Mức phí thu tại trạm này cho vehicle đã gửi, tính bằng VNĐ. Ví dụ: 140000
prices object Bảng phí (VNĐ) theo mã hạng xe, liệt kê mức thu cho từng hạng xe được hỗ trợ tại trạm này. (nếu có)

Các mã trạng thái

  • OK: Yêu cầu thành công, phản hồi chứa dữ liệu hợp lệ.
  • INVALID_REQUEST: Tham số gửi lên không hợp lệ. Chi tiết lỗi nằm trong trường messages của phản hồi.
  • OVER_DAILY_LIMIT: API key đã vượt hạn mức lượt gọi trong ngày. Các lượt gọi tiếp theo sẽ không được xử lý cho tới khi hạn mức được đặt lại.
  • MAX_POINTS_EXCEED: Số điểm trong URL vượt quá mức tối đa của gói bạn đang dùng. Bạn giảm bớt số điểm rồi gọi lại.
  • ERROR_UNKNOWN: Có lỗi ngoài dự kiến khi xử lý yêu cầu. Bạn xem trường messages để biết thêm, hoặc liên hệ hỗ trợ nếu vẫn không được.
  • ZERO_RESULTS: Không tìm được tuyến đường khả thi giữa các điểm yêu cầu.
facebook
Tổng đài hỗ trợ
089.616.4567
facebook Chat Facebook zalo Chat Zalo