אפשר להשתמש בהודעת OptimizeToursRequest
כדי ליצור OptimizeTours
בקשה.
דוגמה: שליחת בקשה של OptimizeTours
אפשר לשלוח בקשות OptimizeTours
באמצעות REST או gRPC. לקוח/ה
זמינות של ספריות גם בכמה שפות תכנות פופולריות. הזה
משתמשת בשילוב של כלי שורת פקודה וספריות לקוח כדי ליצור
בקשות.
לפני שליחת בקשה, צריך להחליף את הפרמטרים הבאים בערכים שמתאים לסביבה שלך:
- חשוב לוודא ש-Application Default Credentials מוגדר באופן שמתואר לפי בקטע שימוש ב-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
אם משתמשים ב-Maven, צריך להוסיף את הקוד הבא לקובץ 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>
שולחים בקשה באמצעות ספריית הלקוח של 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
לקוח Python זמין ב- PyPI.
pip install google-maps-routeoptimization
שולחים בקשה באמצעות ספריית הלקוח של 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
קודם כול, מבקשים עותק של ארכיון הלקוח של Node.js ממפות Google נציג הפלטפורמה.
מגדירים את קובץ 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
כשתהליך הבקשה יסתיים, תקבלו הודעת תשובה.