Bạn có thể sử dụng thông báo OptimizeToursRequest
để tạo yêu cầu OptimizeTours
.
Ví dụ: Đưa ra yêu cầu OptimizeTours
Bạn có thể thực hiện yêu cầu OptimizeTours
bằng cách sử dụng REST hoặc gRPC. Thư viện ứng dụng cũng được cung cấp cho một số ngôn ngữ lập trình phổ biến. Ví dụ này sử dụng kết hợp các công cụ dòng lệnh và thư viện ứng dụng để đưa ra yêu cầu.
Trước khi đưa ra yêu cầu, hãy thay thế các thông số sau bằng các giá trị phù hợp với môi trường của bạn:
- Đảm bảo bạn đã định cấu hình Thông tin đăng nhập mặc định của ứng dụng như mô tả trong phần Sử dụng OAuth.
Đặt PROJECT_NUMBER_OR_ID thành mã hoặc số dự án trên đám mây của bạn.
Go
Tạo yêu cầu bằng thư viện ứng dụng Go:
import ( "context" "fmt" routeoptimization "cloud.google.com/go/maps/routeoptimization/apiv1" "google.golang.org/genproto/googleapis/type/latlng" rpb "cloud.google.com/go/maps/routeoptimization/apiv1/routeoptimizationpb" ) func optimizeTours(projectID string) (*rpb.OptimizeToursResponse, error) { ctx := context.Background() c, err := routeoptimization.NewClient(ctx) if err != nil { return nil, fmt.Errorf("routeoptimization client: %w", err) } defer c.Close() // See https://pkg.go.dev/cloud.google.com/go/maps/routeoptimization/apiv1/routeoptimizationpb#OptimizeToursRequest. req := &rpb.OptimizeToursRequest{ Parent: "projects/" + projectID, Model: &rpb.ShipmentModel{ Shipments: []*rpb.Shipment{ &rpb.Shipment{ Deliveries: []*rpb.Shipment_VisitRequest{ {ArrivalLocation: &latlng.LatLng{Latitude: 48.880942, Longitude: 2.323866}}, }, }, }, Vehicles: []*rpb.Vehicle{ { StartLocation: &latlng.LatLng{Latitude: 48.863102, Longitude: 2.341204}, EndLocation: &latlng.LatLng{Latitude: 48.86311, Longitude: 2.341205}, }, }, }, } return c.OptimizeTours(ctx, req) }
Java
Nếu bạn đang sử dụng Maven, hãy thêm nội dung sau đây vào tệp pom.xml
.
<dependencyManagement>
<dependencies>
<dependency>
<artifactId>google-maps-routeoptimization-bom</artifactId>
<groupId>com.google.maps</groupId>
<scope>import</scope>
<type>pom</type>
<version>0.1.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.maps</groupId>
<artifactId>google-maps-routeoptimization</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
Tạo yêu cầu bằng thư viện ứng dụng Java:
import com.google.maps.routeoptimization.v1.OptimizeToursRequest; import com.google.maps.routeoptimization.v1.OptimizeToursResponse; import com.google.maps.routeoptimization.v1.RouteOptimizationClient; import com.google.maps.routeoptimization.v1.Shipment; import com.google.maps.routeoptimization.v1.Shipment.VisitRequest; import com.google.maps.routeoptimization.v1.ShipmentModel; import com.google.maps.routeoptimization.v1.Vehicle; import com.google.type.LatLng;public class OptimizeTours { public static void main(String[] args) throws Exception { System.out.println(optimizeTours()); }
public static OptimizeToursResponse optimizeTours() throws Exception { try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) { OptimizeToursRequest request = OptimizeToursRequest.newBuilder() .setParent("projects/PROJECT_NUMBER_OR_ID") .setModel( ShipmentModel.newBuilder() .addShipments( Shipment.newBuilder() .addPickups( VisitRequest.newBuilder() .setArrivalLocation( LatLng.newBuilder().setLatitude(48.8).setLongitude(2.4)))) .addVehicles( Vehicle.newBuilder() .setStartLocation( LatLng.newBuilder().setLatitude(48.9).setLongitude(2.5)))) .build(); return routeOptimizationClient.optimizeTours(request); } } }
Python
Ứng dụng Python có trên PyPI.
pip install google-maps-routeoptimization
Tạo yêu cầu bằng thư viện ứng dụng Python:
from google.maps import routeoptimization_v1 as ro client = ro.RouteOptimizationClient() request = ro.OptimizeToursRequest( parent="projects/PROJECT_NUMBER_OR_ID", model={ "shipments": [ { "pickups": [ { "arrival_location": { "latitude": 37.738818, "longitude": -122.4161 } } ], "deliveries": [ { "arrival_location": { "latitude": 37.79581, "longitude": -122.4218856 } } ] } ], "vehicles": [ { "start_location": { "latitude": 37.738818, "longitude": -122.4161 }, "end_location": { "latitude": 37.738818, "longitude": -122.4161 }, "cost_per_kilometer": 1.0 } ], "global_start_time": "2024-02-13T00:00:00.000Z", "global_end_time": "2024-02-14T06:00:00.000Z" } ) response = client.optimize_tours(request=request) print(response)
Node.js
Trước tiên, hãy yêu cầu một bản sao của kho lưu trữ ứng dụng Node.js từ người đại diện Nền tảng Google Maps của bạn.
Định cấu hình tệp package.json
bằng đoạn mã JSON sau:
{
"name": "route-optimization-example",
"version": "1.0.0",
"description": "A RouteOptimization example.",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"dependencies": {
"@googlemaps/routeoptimization": "^0.1.0"
}
}
Tạo yêu cầu bằng thư viện ứng dụng Node.js:
'use strict'; const {RouteOptimizationClient} = require('@googlemaps/routeoptimization').v1; const routeoptimizationClient = new RouteOptimizationClient(); async function callOptimizeTours() { const response = await routeoptimizationClient.optimizeTours({ "parent": "projects/PROJECT_NUMBER_OR_ID", "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.79581, "longitude": -122.4218856 } } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 }, "endLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 }, "costPerKilometer": 1.0 } ], "globalStartTime": "2024-02-13T00:00:00.000Z", "globalEndTime": "2024-02-14T06:00:00.000Z" } }); console.log(JSON.stringify(response)); } callOptimizeTours();
Kiến trúc chuyển trạng thái đại diện (REST)
Lệnh sau đây gửi một yêu cầu OptimizeTours
đến API Tối ưu hoá tuyến đường và nhận phản hồi một cách đồng bộ.
curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- << EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.79581, "longitude": -122.4218856 } } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 }, "endLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 }, "costPerKilometer": 1.0 } ], "globalStartTime": "2024-02-13T00:00:00.000Z", "globalEndTime": "2024-02-14T06:00:00.000Z" } } EOM
Sau khi yêu cầu hoàn tất, bạn sẽ nhận được thông báo phản hồi.