Uma mensagem OptimizeToursRequest
pode ser usada para criar uma OptimizeTours
.
solicitação.
Exemplo: faça uma solicitação OptimizeTours
As solicitações OptimizeTours
podem ser feitas usando REST ou gRPC. Cliente
também estão disponíveis para várias linguagens de programação conhecidas. Isso
usa uma combinação de ferramentas de linha de comando e bibliotecas de cliente para tornar
solicitações.
Antes de fazer uma solicitação, substitua os seguintes parâmetros por valores apropriados para seu ambiente:
- Verifique se o Application Default Credentials está configurado conforme descrito em Usar OAuth.
Defina PROJECT_NUMBER_OR_ID como sua nuvem número ou ID do projeto.
Go
Faça uma solicitação usando a biblioteca de cliente 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
Se você usa o Maven, adicione o seguinte ao seu arquivo 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>
Faça uma solicitação usando a biblioteca de cliente 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
O cliente Python está disponível PyPI (em inglês).
pip install google-maps-routeoptimization
Faça uma solicitação usando a biblioteca de cliente 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
Primeiro, solicite uma cópia do arquivo do cliente Node.js do seu Google Maps Representante da plataforma.
Configure seu arquivo package.json
usando o seguinte snippet 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"
}
}
Faça uma solicitação usando a biblioteca de cliente 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
O comando a seguir envia uma solicitação OptimizeTours
para a rota
API Optimization e recebe uma resposta de forma síncrona.
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
Quando a solicitação for concluída, você receberá uma mensagem de resposta.