สามารถใช้ข้อความ OptimizeToursRequest
เพื่อสร้าง OptimizeTours
อีกครั้ง
ตัวอย่าง: ส่งคำขอOptimizeTours
นอกจากนี้ไลบรารีของไคลเอ็นต์ยังมีให้ใช้งานในภาษาโปรแกรมยอดนิยมหลายภาษาอีกด้วย
นอกจากนี้ คุณยังส่งคําขอ OptimizeTours
โดยใช้ REST หรือ gRPC ได้ด้วย
ก่อนส่งคำขอ ให้แทนที่พารามิเตอร์ต่อไปนี้ด้วยค่า เหมาะสมกับสภาพแวดล้อมของคุณ:
- ตรวจสอบว่าคุณได้กำหนดค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันไว้ตามที่อธิบาย ในหัวข้อใช้ OAuth
ตั้งค่า PROJECT_NUMBER_OR_ID ไปยังระบบคลาวด์ของคุณ หมายเลขหรือรหัสโปรเจ็กต์
Go
ส่งคําขอโดยใช้ไลบรารีไคลเอ็นต์ 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
ส่งคําขอโดยใช้ไลบรารีของไคลเอ็นต์ 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 OptimizeToursResponse optimizeTours(String projectId) throws Exception { RouteOptimizationClient client = RouteOptimizationClient.create(); OptimizeToursRequest request = OptimizeToursRequest.newBuilder() .setParent("projects/" + projectId) .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 client.optimizeTours(request); } }
Python
ไคลเอ็นต์ Python พร้อมใช้งานบน PyPI
pip install google-maps-routeoptimization
ส่งคำขอโดยใช้ไลบรารีของไคลเอ็นต์ Python ดังนี้
from google.maps import routeoptimization_v1 as ro from datetime import datetime 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": datetime.fromisoformat("2024-02-13T00:00:00.000Z"), "global_end_time": datetime.fromisoformat("2024-02-14T06:00:00.000Z") } ) response = client.optimize_tours(request=request) print(response)
Node.js
ก่อนอื่น ให้ขอสำเนาที่เก็บถาวรของไคลเอ็นต์ Node.js จาก Google Maps ตัวแทนของแพลตฟอร์ม
กำหนดค่าไฟล์ package.json
โดยใช้ข้อมูลโค้ด JSON ต่อไปนี้
{
"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"
}
}
ส่งคําขอโดยใช้ไลบรารีของไคลเอ็นต์ 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();
REST
คำสั่งต่อไปนี้จะส่งคำขอ OptimizeTours
ไปยังเส้นทาง
Optimize API และรับการตอบกลับแบบพร้อมกัน
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
เมื่อคําขอเสร็จสมบูรณ์แล้ว คุณจะได้รับข้อความตอบกลับ