Matrix API

Matrix API tính toán ma trận một-nhiều, nhiều-một và nhiều-nhiều cho thời gian và khoảng cách. Nói một cách khác dễ hiểu hơn thì API này sẽ:

  • Tính thời gian dự tính đi giữa các điểm trong 1 tập hợp điểm.
  • Tính quãng đường đi giữa các điểm trong 1 tập hợp điểm.

Bạn có thể tham khảo ví dụ sử dụng Matrix API với JavaScript

URL

URL: /navigation/matrix/{profile}

Method

Method: POST

Parameters

* tham số yêu cầu.

Tham sốMô tảGiá trị
api_key*Key xác thực để cho gọi dịch vụYOUR_API_KEY
profile*Loại phương tiệndriving-car, cycling-regular, foot-walking
$ curl "https://api.ekgis.vn/navigation/matrix/{profile}?api_key={YOUR_API_KEY}"

Body

* tham số yêu cầu.

Tham sốMô tảGiá trị
locations*
(array)
Danh sách tọa độ bao gồm kinh độ, vĩ độ. Ít nhất có hai cặp tọa độ.{longitude},{latitude};{longitude},{latitude};...
Ví dụ: [[105.703,21.473],[106.2079,22.1538],[105.572,21.881]]
destinations
(array)
Một danh sách các chỉ số đề cập đến danh sách các vị trí (bắt đầu bằng 0).all (mặc định), [{index_1},{index_2}[,{index_N} ...].
Ví dụ: [0,3] cho vị trí thứ nhất và thứ 4
id
(string)
ID của yêu cầu.Ví dụ: "centrality_request"
metrics
(array)
Tùy chọn các số liệu được ma trận trả về.
- duration(Mặc định) Trả về là thời gian tới điểm được tính bằng giây.
- distance Trả về là quãng đường cho tới điểm với đơn vị được định nghĩa tại units
Ví dụ: ["duration"]
resolve_locations
(boolean)
Tùy chọn có trả về chi tiết các vị trí hay không. Nếu giá trị tham số được đặt thành true, thì mọi phần tử trong destinationssources sẽ chứa phần tử name xác định tên của con phố gần nhất.false (mặc định), true
sources
(array)
Một danh sách các chỉ số đề cập đến danh sách các vị trí (bắt đầu bằng 0).all (mặc định), [{index_1},{index_2}[,{index_N} ...].
Ví dụ: [0,3] cho vị trí thứ nhất và thứ 4
units
(string)
Đơn vị khoảng cách.m (mặc định), km, mile

Ví dụ body gửi lên dạng JSON như sau:

{
"locations": [
[
105.809657,
21.012723
],
[
105.909234,
21.100042
],
[
105.500047,
21.000043
]
],
"metrics": [
"duration"
],
"resolve_locations": "true"
}

Response

Đối tượng trả về ma trận với các thông tin sau:

  • durations([[double]]): Kết quả theo thời gian.
  • distances([[double]]): Kết quả theo quãng đường.
  • sources([object]): Các giá trị điểm bắt đầu.
    • location([double]): Tọa độ của điểm tiếp nhất trên biểu đồ.
    • name(string): Tên đường gần nhất. (Chỉ khi resolve_locations=true và chỉ khi có tên).
    • snapped_distance(double): Khoảng cách sai lệch giữa Vị trí sources và điểm trên biểu đồ.
  • destinations([object]): Các giá trị điểm kết thúc.
    • location([double]): Tọa độ của điểm gần nhất trên biểu đồ.
    • name(string): Tên đường gần nhất. (Chỉ khi resolve_locations=true và chỉ khi có tên).
    • snapped_distance(double): Khoảng cách sai lệch giữa Vị trí destinations và điểm trên biểu đồ.
  • metadata(object): Thông tin về dịch vụ và yêu cầu.
    • attribution(string): Thông tin về bản quyền.
    • engine(object): Thông tin về dịch vụ routing.
      • build_date(string): Ngày cập nhật dịch vụ.
      • graph_date(string): Ngày cập nhật dữ liệu đồ thị.
      • version(string): Phiên bản back-end của dịch vụ.
    • id(string): ID của yêu cầu.
    • osm_file_md5_hash(string): Hàm băm MD5 của tệp OSM được sử dụng để tạo biểu đồ.
    • query(object): Thông tin được sử dụng để tạo ra các routing.
    • service(string): Dịch vụ được yêu cầu.
    • system_message(string): Tin nhăn hệ thông.
    • timestamp(integer): Thời gian thực hiện yêu cầu.

Ví dụ dữ liệu trả về dạng JSON:

{
"durations": [
[
0,
1555.58,
1861.34
],
[
1506.96,
0,
3273.98
],
[
1872.21,
3277.35,
0
]
],
"destinations": [
{
"location": [
105.809657,
21.012723
],
"name": "Ngõ Láng Trung",
"snapped_distance": 0.03
},
{
"location": [
105.909943,
21.099842
],
"snapped_distance": 76.81
},
{
"location": [
105.500778,
21.001021
],
"snapped_distance": 132.63
}
],
"sources": [
{
"location": [
105.809657,
21.012723
],
"name": "Ngõ Láng Trung",
"snapped_distance": 0.03
},
{
"location": [
105.909943,
21.099842
],
"snapped_distance": 76.81
},
{
"location": [
105.500778,
21.001021
],
"snapped_distance": 132.63
}
],
"metadata": {
"attribution": "eKGIS JSC, OpenStreetMap contributors",
"service": "matrix",
"timestamp": 1686113103434,
"query": {
"locations": [
[
105.809657,
21.012723
],
[
105.909234,
21.100042
],
[
105.500047,
21.000043
]
],
"profile": "driving-car",
"responseType": "json",
"metricsStrings": [
"DURATION"
],
"metrics": [
"duration"
],
"resolve_locations": true
},
"engine": {
"version": "6.7.0",
"build_date": "2023-06-02T13:39:24Z",
"graph_date": "2023-06-02T09:41:21Z"
}
}
}