eKMap PlatformMaps APIsNavigationTraveling Salesman Problem API

Traveling Salesman Problem API

Traveling Salesman Problem (TSP) API giải quyết bài toán:

Cho trước một tập hợp các thành phố và khoảng cách giữa chúng, TSP yêu cầu tìm tuyến đường ngắn nhất có thể đi qua mỗi thành phố đúng một lần và quay trở lại thành phố xuất phát. Vấn đề này có thể được áp dụng cho ngữ cảnh của bản đồ và định tuyến, trong đó các thành phố đại diện cho các vị trí và khoảng cách đại diện cho khoảng cách di chuyển hoặc thời gian di chuyển.

API này có thể cung cấp các thuật toán hoặc chẩn đoán để tìm các giải pháp gần đúng cho TSP, cũng như các công cụ trực quan để hiển thị các tuyến đường kết quả trên bản đồ. Các nhà phát triển có thể sử dụng API Bản đồ TSP để tạo các ứng dụng giúp tối ưu hóa việc lập kế hoạch và điều hướng tuyến đường, chẳng hạn như tối ưu hóa giao hàng, quản lý hậu cần, v.v.

Bạn có thể tham khảo ví dụ sử dụng Traveling Salesman Problem (TSP) API với JavaScript

URL

URL: /navigation/trip/{profile}/driving/{coordinates}

Method

Method: GET

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 di chuyển:
  • car: Đi bằng ô tô
  • bicycle: Đi bằng xe đạp/xe máy
  • foot: Đi bộ
Ví dụ: car
coordinates*Mảng cặp tọa độ bao gồm kinh độ, vĩ độ. Ít nhất có hai cặp tọa độ.{longitude},{latitude};{longitude},{latitude};...
Ví dụ: 105.809,21.0127;105.80925,21.0131
geometriesĐịnh dạng hình học tuyến đường được trả về (ảnh hưởng đến tổng quan và mỗi bước)polyline (mặc định), polyline6, geojson
overviewThêm hình học tổng quan hoặc đầy đủ, đơn giản hóa theo mức thu phóng cao nhất mà nó có thể được hiển thị hoặc không.simplified (mặc định), full, false
stepsCác bước lộ trình đã trả về cho mỗi chặng của tuyến đườngtrue (mặc định), false
annotationsTrả về siêu dữ liệu bổ sung cho mỗi tọa độ dọc theo hình dạng tuyến đườngfalse (mặc định), true, nodes, distance, duration, datasources, weight, speed
roundtripTuyến đường trả về là một chuyến khứ hồi (tuyến đường quay trở lại vị trí đầu tiên)false (mặc định), true
sourceTuyến đường trả về bắt đầu tại any hoặc tọa độ firstany (mặc định), first
destinationTuyến đường trả về kết thúc tại any hoặc tọa độ lastany (mặc định), last

Ví dụ Request:

$ curl "https://api.ekgis.vn/navigation/trip/car/driving/105.83641,21.04303;105.84888,21.03171;105.804159,21.0304848?overview=full&geometries=geojson&api_key={YOUR_API_KEY}"

Response

Trả về đối tượng chỉ đường với các thông tin sau:

  • code: nếu yêu cầu thành công giá trị là Ok hoặc NoRoute nếu không tìm thấy tuyến đường nào
  • waypoints: Mảng các đối tượng đại diện cho tất cả các điểm của dấu vết theo thứ tự
  • trips: Một mảng tuyến đường phù hợp. Dữ liệu trả về dạng GeoJSON hoặc polyline tùy vào tham số truyền vào

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

{
"code": "Ok",
"trips": [
{
"geometry": {
"coordinates": [
[
105.836401,
21.042695
],
...
[
105.836401,
21.042695
]
],
"type": "LineString"
},
"legs": [
{
"steps": [],
"distance": 2475.2,
"duration": 266.9,
"summary": "",
"weight": 266.9
},
{
"steps": [],
"distance": 6738.6,
"duration": 532.4,
"summary": "",
"weight": 544
},
...
],
"distance": 14308.7,
"duration": 1227.2,
"weight_name": "routability",
"weight": 1262.3
}
],
"waypoints": [
{
"waypoint_index": 0,
"trips_index": 0,
"location": [
105.836401,
21.042695
],
"name": "Phố Quán Thánh",
"distance": 37.100281,
"hint": "_05SgP___380AAAAPQAAAGYAAAAAAAAA7dZrQuYVD0GcE-JCAAAAADQAAAA9AAAAZgAAAAAAAACRAgAAce9OBgcWQQF6704GVhdBAQEA_xAwuIh5"
},
{
"waypoint_index": 1,
"trips_index": 0,
"location": [
105.848913,
21.031726
],
"name": "Phố Hàng Hòm",
"distance": 3.860854,
"hint": "lFVSgP___38CAAAAJAAAAAAAAAAgAAAALn4fQDlKF0IAAAAAZ91TQQIAAAAkAAAAAAAAACAAAACRAgAAUSBPBi7rQAEwIE8GHutAAQAAjwkwuIh5"
},
...
]
}