Einzelne nicht blockierende API-Methoden zur Optimierung
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
In diesem Leitfaden wird die experimentelle Einführung der API-Methoden OptimizeToursLongRunning und OptimizeToursUri beschrieben, mit denen Nutzer einzelne, nicht blockierende Optimierungsanfragen stellen können. Bei einer nicht blockierenden Optimierung erhält der Nutzer schnell ein Operation-Proto von der Methode, mit dem er den Status der Optimierung durch Aufrufen von GetOperation referenzieren kann.
Weitere Informationen finden Sie unter Vorgänge mit langer Ausführungszeit.
Diese nicht blockierenden Methoden bieten gegenüber der blockierenden Methode OptimizeTours den Vorteil, dass die Verbindung zum Server nicht aufrechterhalten werden muss, während die Optimierung ausgeführt wird. Außerdem lassen sich Fehler mit diesen neuen Methoden leichter beheben als mit BatchOptimizeTours, da jede Optimierung einem einzelnen Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO) zugeordnet ist.
Nutzer, die die Optimierungsanfrage inline einfügen möchten, können die Methode OptimizeToursLongRunning verwenden. Nutzer, die die Anfragen hochladen und die Antwort über Google Cloud Storage lesen möchten, können die Methode OptimizeToursUri verwenden.
Legen Sie PROJECT_NUMBER_OR_ID auf Ihre Cloud-Projektnummer oder -ID fest.
Mit dem folgenden Befehl wird eine OptimizeToursLongRunning-Anfrage an die Route Optimization API gesendet und eine zugehörige Vorgangs-ID empfangen. Mit der Methode GetOperation kann der Status des Vorgangs abgefragt werden.
Wenn der Vorgang abgeschlossen ist, enthalten die Metadaten auch die endgültige OptimizeToursResponse.
Wie bei BatchOptimizeTours können Sie OptimizeToursUri verwenden, um Ihre Optimierungsanfrage und -antwort weiterhin in Google Cloud Storage zu speichern.
Cloud Storage-URIs müssen in der OptimizeToursUri-Anforderungsnachricht angegeben werden.
Der zurückgegebene Status Operation bezieht sich nur auf die einzelne eingereichte OptimizeToursRequest.
Beispiel: OptimizeToursUri-Anfrage stellen
Ersetzen Sie vor dem Senden einer Anfrage die folgenden Parameter durch Werte, die für Ihre Umgebung geeignet sind:
Legen Sie PROJECT_NUMBER_OR_ID auf Ihre Cloud-Projektnummer oder -ID fest.
Mit dem folgenden Befehl wird eine OptimizeToursUri-Anfrage an die Route Optimization API gesendet und eine zugehörige Vorgangs-ID empfangen. Verwenden Sie die Methode GetOperation, um den Status des Vorgangs abzufragen.
Wenn der Vorgang abgeschlossen ist, wird OptimizeToursResponse remote unter dem in der Anfrage angegebenen Ausgabepfad-URI gespeichert.
[null,null,["Zuletzt aktualisiert: 2025-08-29 (UTC)."],[[["\u003cp\u003eThis guide introduces \u003ccode\u003eOptimizeToursLongRunning\u003c/code\u003e and \u003ccode\u003eOptimizeToursUri\u003c/code\u003e, new methods that enhance reliability and optionally remove the dependency on Google Cloud Storage compared to \u003ccode\u003eBatchOptimizeTours\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eOptimizeToursLongRunning\u003c/code\u003e allows for inline optimization requests without requiring Google Cloud Storage and each request is tracked by its own individual LRO.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eOptimizeToursUri\u003c/code\u003e offers the option to continue using Google Cloud Storage for request and response storage, with the benefit of each request having its own LRO.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eBatchOptimizeTours\u003c/code\u003e method, while still supported, requires all requests and responses to be stored on Google Cloud Storage and only provides one LRO for all the requests.\u003c/p\u003e\n"]]],[],null,["\u003cbr /\u003e\n\n| This product or feature is Experimental (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google\n| Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](/maps/launch-stages).\n\n\u003cbr /\u003e\n\nThis guide introduces the experimental launch of the [`OptimizeToursLongRunning`](/maps/tt/route-optimization/experimental/otlr/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.RouteOptimization.OptimizeToursLongRunning)\nand [`OptimizeToursUri`](/maps/tt/route-optimization/experimental/otlr/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.RouteOptimization.OptimizeToursUri) API methods that allow users to make single\nnon-blocking optimization requests. In a non-blocking optimization, the user\nquickly receives a Operation proto from the method that can be used\nto reference the status of the optimization by calling [`GetOperation`](/maps/documentation/route-optimization/reference/rpc/google.longrunning#google.longrunning.Operations.GetOperation).\nSee [Long Running Operations](https://developers.google.com/maps/documentation/route-optimization/sync-vs-async#long_running_operations)\nfor more details.\n\nThese non-blocking methods provide the\nreliability benefits over the blocking [`OptimizeTours`](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.RouteOptimization.OptimizeTours) method since the\nclient does not need to maintain connection to the server while the optimization\nis being executed. Also, these new methods make it easier to debug\nfailures compared to [`BatchOptimizeTours`](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.RouteOptimization.BatchOptimizeTours) since each optimization is\nassociated with a single Long-Running Operation (LRO).\n\nUsers who prefer to inline the optimization request can use the\n[`OptimizeToursLongRunning`](/maps/tt/route-optimization/experimental/otlr/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.RouteOptimization.OptimizeToursLongRunning) method while users who prefer to upload the\nrequests and the read response using Google Cloud Storage can use the\n[`OptimizeToursUri`](/maps/tt/route-optimization/experimental/otlr/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.RouteOptimization.OptimizeToursUri) method.\n\nOptimizeToursLongRunning\n\nExample: Make an `OptimizeToursLongRunning` request\n\nBefore making a request, replace the following parameters with values\nappropriate for your environment:\n\n- Ensure you have [Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc) configured as described in [Use OAuth](/maps/documentation/route-optimization/oauth-token).\n- Set \u003cvar label=\"project_number\" translate=\"no\"\u003ePROJECT_NUMBER_OR_ID\u003c/var\u003e to your Cloud\n project number or ID.\n\n The following command sends an `OptimizeToursLongRunning` request to the\n Route Optimization API and receives an operation ID associated with it. The\n [`GetOperation`](/maps/documentation/route-optimization/reference/rpc/google.longrunning#google.longrunning.Operations.GetOperation) method can be used to query the status of the operation.\n Once the operation completes, the metadata also contains the final\n [`OptimizeToursResponse`](/maps/tt/route-optimization/experimental/otlr/reference/rpc/google.maps.routeoptimization.v1#optimizetoursresponse). \n\n ```scdoc\n curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer $(gcloud auth application-default print-access-token)\" \\\n --data @- \u003c\u003cEOM\n {\n \"model\": {\n \"shipments\": [\n {\n \"pickups\": [\n {\n \"arrivalLocation\": {\n \"latitude\": 37.42506261000996,\n \"longitude\": -122.09535511930135\n }\n }\n ],\n \"deliveries\": [\n {\n \"arrivalLocation\": {\n \"latitude\": 37.42421503206021,\n \"longitude\": -122.09526063135228\n }\n }\n ]\n }\n ],\n \"vehicles\": [\n {\n \"travelMode\": \"DRIVING\",\n \"costPerKilometer\": 1.0\n }\n ],\n }\n }\n EOM\n ```\n | **Note:** this example uses the `--data @-` to read a request from standard input. Use `--data @`\u003cvar label=\"curl_filename\" translate=\"no\"\u003eFilename\u003c/var\u003e to read from a file.\n\nOptimizeToursUri\n\nLike `BatchOptimizeTours`, you can use [`OptimizeToursUri`](/maps/tt/route-optimization/experimental/otlr/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.RouteOptimization.OptimizeToursUri) to continue\nstoring your optimization request and response on Google Cloud Storage.\nCloud Storage URIs must be specified in the `OptimizeToursUri` request message.\nThe `Operation` status returned is associated only with the single submitted\n`OptimizeToursRequest`.\n\nExample: Make an `OptimizeToursUri` request\n\nBefore making a request, replace the following parameters with values\nappropriate for your environment:\n\n- Ensure you have [Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc) configured as described in [Use OAuth](/maps/documentation/route-optimization/oauth-token).\n- Set \u003cvar label=\"project_number\" translate=\"no\"\u003ePROJECT_NUMBER_OR_ID\u003c/var\u003e to your Cloud\n project number or ID.\n\n The following command sends an `OptimizeToursUri` request to the\n Route Optimization API and receives an operation ID associated with it. Use\n the [`GetOperation`](/maps/documentation/route-optimization/reference/rpc/google.longrunning#google.longrunning.Operations.GetOperation) method to query the status of the operation.\n Once the operation completes, the [`OptimizeToursResponse`](/maps/tt/route-optimization/experimental/otlr/reference/rpc/google.maps.routeoptimization.v1#optimizetoursresponse) is stored\n remotely on the output URI path provided in the request. \n\n ```scdoc\n curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer $(gcloud auth application-default print-access-token)\" \\\n --data @- \u003c\u003cEOM\n {\n \"input\": {\n \"uri\": \"gs://bucket/path/input/object.json\"\n },\n \"output\": {\n \"uri\": \"gs://bucket/path/output/object.json\"\n }\n }\n EOM\n ```\n | **Note:** this example uses the `--data @-` to read a request from standard input. Use `--data @`\u003cvar label=\"curl_filename\" translate=\"no\"\u003eFilename\u003c/var\u003e to read from a file."]]