Eine OptimizeToursRequest
-Nachricht kann für eine OptimizeTours
-Anfrage verwendet werden.
Beispiel: OptimizeTours
-Anfrage stellen
OptimizeTours
-Anfragen können entweder mit REST oder gRPC gestellt werden. Clientbibliotheken sind auch für verschiedene gängige Programmiersprachen verfügbar. In diesem Beispiel wird für Anfragen eine Kombination aus Befehlszeilentools und Clientbibliotheken verwendet.
Ersetzen Sie vor dem Senden einer Anfrage die folgenden Parameter durch Werte, die für Ihre Umgebung geeignet sind:
- Achten Sie darauf, dass die Standardanmeldedaten für Anwendungen wie unter OAuth verwenden beschrieben konfiguriert sind.
Legen Sie für PROJECT_NUMBER_OR_ID die Nummer oder ID Ihres Cloud-Projekts fest.
Ok
Stellen Sie eine Anfrage mit der Go-Clientbibliothek:
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
Wenn Sie Maven verwenden, fügen Sie der Datei pom.xml
Folgendes hinzu.
<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>
Stellen Sie eine Anfrage mit der Java-Clientbibliothek:
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
Der Python-Client ist auf PyPI verfügbar.
pip install google-maps-routeoptimization
Stellen Sie eine Anfrage mit der Python-Clientbibliothek:
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
Fordern Sie zuerst von Ihrem Google Maps Platform-Ansprechpartner eine Kopie des Node.js-Clientarchivs an.
Konfigurieren Sie die Datei package.json
mit dem folgenden JSON-Snippet:
{
"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"
}
}
Stellen Sie eine Anfrage mit der Node.js-Clientbibliothek:
'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
Der folgende Befehl sendet eine OptimizeTours
-Anfrage an die Route
Optimization API und empfängt synchron eine Antwort.
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
Sobald die Anfrage abgeschlossen ist, erhalten Sie eine Antwortnachricht.