Buat Permintaan API

Pesan OptimizeToursRequest dapat digunakan untuk membuat OptimizeTours permintaan.

Contoh: Membuat Permintaan OptimizeTours

Library klien juga tersedia untuk beberapa bahasa pemrograman yang populer. Permintaan OptimizeTours juga dapat dibuat menggunakan REST atau gRPC.

Sebelum membuat permintaan, ganti parameter berikut dengan nilai sesuai untuk lingkungan Anda:

Go

Buat permintaan menggunakan library klien 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

Buat permintaan menggunakan library klien 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

Klien Python tersedia di PyPI.

pip install google-maps-routeoptimization

Buat permintaan menggunakan library klien 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

Pertama, minta salinan arsip klien Node.js dari Google Maps Anda Perwakilan platform.

Konfigurasikan file package.json Anda menggunakan cuplikan JSON berikut:

  {
    "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"
    }
  }

Buat permintaan menggunakan library klien 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

Perintah berikut mengirim permintaan OptimizeTours ke Rute Optimization API dan menerima respons secara sinkron.

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

Setelah permintaan selesai, Anda akan menerima pesan respons.

Berikutnya: Menafsirkan Respons