Bỏ qua

Route — Chỉ đường

Route


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 gắn chức năng chỉ đường này vào ứng dụng của mình để người dùng tìm được đường đi hiệu quả nhất giữa các điểm.

Playground

Bạn có thể thử Route v4 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

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 Đặ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 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 Trọng số gán cho tuyến
time int 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
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[] Mảng annotation dùng để tính tốc độ và mức kẹt xe. Chi tiết ở Annotation Object Model (nếu có)
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 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
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 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
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