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ện | driving-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 destinations và sources 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ỉ khiresolve_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ỉ khiresolve_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"}}}