تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يقدّم هذا الدليل الإطلاق التجريبي لطريقتَي واجهة برمجة التطبيقات OptimizeToursLongRunning وOptimizeToursUri اللتَين تتيحان للمستخدمين تقديم طلبات تحسين فردية غير حظر. في عملية التحسين غير الحظر، يتلقّى المستخدم بسرعة Operation proto من الطريقة التي يمكن استخدامها للإشارة إلى حالة التحسين من خلال طلب GetOperation.
يمكنك الاطّلاع على العمليات الطويلة الأمد
لمزيد من التفاصيل.
توفّر هذه الطرق غير الحظر مزايا الموثوقية مقارنةً بطريقة OptimizeTours الحظر، لأنّ العميل لا يحتاج إلى الحفاظ على الاتصال بالخادم أثناء تنفيذ عملية التحسين. بالإضافة إلى ذلك، تسهّل هذه الطرق الجديدة عملية تصحيح الأخطاء مقارنةً بطريقة BatchOptimizeTours، لأنّ كل عملية تحسين مرتبطة بعملية طويلة الأمد (LRO) واحدة.
يمكن للمستخدمين الذين يفضّلون تضمين طلب التحسين استخدام طريقة OptimizeToursLongRunning، بينما يمكن للمستخدمين الذين يفضّلون تحميل الطلبات وقراءة الرد باستخدام Google Cloud Storage استخدام طريقة OptimizeToursUri.
OptimizeToursLongRunning
مثال: تقديم طلب OptimizeToursLongRunning
قبل تقديم طلب، استبدِل المَعلمات التالية بقيم مناسبة لبيئتك:
اضبط قيمة PROJECT_NUMBER_OR_ID على رقم مشروعك أو رقم تعريفه على السحابة الإلكترونية.
يرسل الأمر التالي طلب OptimizeToursLongRunning إلى واجهة برمجة التطبيقات Route Optimization API ويتلقّى معرّف عملية مرتبطًا به. يمكن استخدام طريقة
GetOperation للاستعلام عن حالة العملية.
بعد اكتمال العملية، ستتضمّن البيانات الوصفية أيضًا OptimizeToursResponse النهائي.
كما هو الحال مع BatchOptimizeTours، يمكنك استخدام OptimizeToursUri لمواصلة تخزين طلبات التحسين وردودها على Google Cloud Storage.
يجب تحديد معرّفات الموارد المنتظمة (URI) الخاصة بخدمة Cloud Storage في رسالة الطلب OptimizeToursUri.
ترتبط حالة Operation التي يتم عرضها فقط بـ OptimizeToursRequest واحد تم إرساله.
مثال: تقديم طلب OptimizeToursUri
قبل تقديم طلب، استبدِل المَعلمات التالية بقيم مناسبة لبيئتك:
اضبط قيمة PROJECT_NUMBER_OR_ID على رقم مشروعك أو رقم تعريفه على السحابة الإلكترونية.
يرسل الأمر التالي طلب OptimizeToursUri إلى واجهة برمجة التطبيقات Route Optimization API ويتلقّى معرّف عملية مرتبطًا به. استخدِم طريقة GetOperation لطلب البحث عن حالة العملية.
بعد اكتمال العملية، يتم تخزين OptimizeToursResponse عن بُعد في مسار معرّف الموارد الموحّد للناتج الذي تم توفيره في الطلب.
تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\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."]]