DISTANCE MATRIX (V2)

TỔNG QUAN

Distance Matrix API v2 là công cụ hỗ trợ tính toán khoảng cách và thời gian di chuyển giữa nhiều cặp điểm cùng lúc. Được ứng dụng phổ biến trong các bài toán tối ưu vận hành như: lập kế hoạch giao hàng, điều phối xe theo lộ trình tối ưu, gọi xe theo thời gian thực, hay quản lý năng lực vận chuyển trong hệ thống logistics phức tạp.

Phiên bản v2 được nâng cấp với nhiều cải tiến quan trọng.

API vẫn duy trì cấu trúc phản hồi JSON quen thuộc, đảm bảo khả năng tích hợp nhanh chóng với các hệ thống hiện có trong lĩnh vực logistics, điều hành giao thông, du lịch, quản lý hạ tầng đô thị và nhiều ứng dụng phân tích không gian khác. Tốc độ phản hồi được tối ưu hóa, giúp giảm đáng kể thời gian tính toán ngay cả khi xử lý hàng trăm điểm đầu – cuối trong một lần gọi API.

CÁCH TẠO MỘT YÊU CẦU DISTANCE MATRIX

Đầu tiên, bạn phải đăng ký tài khoản và tạo API key của Goong theo hướng dẫn chi tiết tại đây.

Hãy bắt đầu bằng cách nhập url vào trình duyệt web của bạn – sau đó thay thế YOUR_API_KEY bằng API key mà bạn đã tạo. Phản hồi về sẽ cho biết khoảng cách và thời lượng giữa các điểm gốc và đích đến được chỉ định.

URL: https://rsapi.goong.io/v2/distancematrix

Phương thức: GET

Tham số trong request truyền vào:

curl "https://rsapi.goong.io/v2/distancematrix?origins=20.981971,105.864323&destinations=21.031011,105.783206%7C21.022328,105.790480%7C21.016665,105.788774&vehicle=car&api_key={YOUR_API_KEY}"
Tham số Mô tả Ví dụ giá trị
origins Tọa độ điểm bắt đầu của tuyến đường. Viết theo định dạng vĩ độ,kinh độ (latitude, longitude) 21.046623224000029,105.790168203000060
destinations Tọa độ điểm đến (hoặc nhiều điểm), phân cách bằng dấu ` 21.031011,105.783206 | 21.022328,105.790480 | 21.016665,105.788774
vehicle Loại phương tiện di chuyển. Các giá trị hỗ trợ gồm: car (ô tô), bike (xe đạp), motorcycle (xe máy), truck (xe tải) car
api_key Mã khóa xác thực người dùng. Bắt buộc để sử dụng API API của bạn

Tham số trong response trả về:

{
    "rows": [
        {
            "elements": [
                {
                    "distance": {
                        "text": "11.99 km",
                        "value": 11988
                    },
                    "duration": {
                        "text": "34 phút",
                        "value": 2016
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "10.76 km",
                        "value": 10762
                    },
                    "duration": {
                        "text": "30 phút",
                        "value": 1786
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "13.57 km",
                        "value": 13571
                    },
                    "duration": {
                        "text": "30 phút",
                        "value": 1796
                    },
                    "status": "OK"
                }
            ]
        }
    ]
}
Tham số Mô tả Ví dụ
rows Là một mảng chứa các đối tượng, mỗi đối tượng đại diện cho một điểm bắt đầu. Bên trong mỗi row là trường elements, mô tả thông tin khoảng cách và thời gian đến các điểm đích tương ứng.
 {
  “elements”: [
 {
  “distance”: {},
  “duration”: {},
  “status”: “OK”
 }
 ]
}
elements Mảng con nằm trong mỗi phần tử của rows. Mỗi element tương ứng với một cặp điểm bắt đầu → điểm kết thúc, chứa thông tin chi tiết: khoảng cách (distance), thời gian (duration) và trạng thái (status).
"elements": [ 
{ "status": "OK",
 "duration": 
{ "text": "36 phút",
 "value": 2150 
},
status Trạng thái của từng cặp điểm. “OK” nghĩa là tính toán thành công. Có thể trả về “NOT_FOUND” hoặc “ZERO_RESULTS” nếu không tìm được tuyến đường phù hợp. ok
duration Thời gian di chuyển giữa hai điểm:
– text: hiển thị dạng người đọc (giờ, phút)
– value: đơn vị là giây, phục vụ tính toán
"duration": { 
"text": "35 phút", 
"value": 2089
distance Khoảng cách di chuyển giữa hai điểm:
– text: dạng hiển thị cho người dùng (km, m)
– value: đơn vị là mét
"distance": { 
"text": "15.1 km", 
"value": 15110