با توجه به مجموعه ای از ایستگاه های پایانه و میانی و یک هدف مسیر، بهترین مسیر را برای هدف مسیر محاسبه می کند. همچنین سریع ترین مسیر و کوتاه ترین مسیر را به عنوان مسیرهای مرجع برمی گرداند.
توجه: این روش مستلزم آن است که یک ماسک فیلد پاسخ را در ورودی مشخص کنید. میتوانید ماسک فیلد پاسخ را با استفاده از پارامتر URL فیلدها یا fields
$fields
، یا با استفاده از هدر HTTP/gRPC X-Goog-FieldMask
تهیه کنید (به پارامترها و سرصفحههای URL موجود مراجعه کنید. مقدار فهرستی از مسیرهای فیلد است که با کاما از هم جدا شدهاند. این مستندات دقیق در مورد نحوه ساخت مسیرهای فیلد را ببینید.
برای مثال در این روش:
- ماسک فیلد تمام فیلدهای موجود (برای بازرسی دستی):
X-Goog-FieldMask: *
- ماسک میدانی از فواصل مسیر، مدت زمان، نشانه و اطلاعات عوارض:
X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo
Google از استفاده از ماسک فیلد پاسخ ( *
) یا مشخص کردن ماسک فیلد در سطح بالا ( routes
) جلوگیری می کند، زیرا:
- انتخاب فقط فیلدهایی که نیاز دارید به سرور ما کمک می کند تا چرخه های محاسباتی را ذخیره کند و به ما امکان می دهد نتیجه را با تاخیر کمتری به شما برگردانیم.
- انتخاب تنها زمینه هایی که در کار تولیدی خود به آن نیاز دارید، عملکرد تاخیر پایدار را تضمین می کند. ممکن است در آینده فیلدهای پاسخ بیشتری اضافه کنیم و این فیلدهای جدید ممکن است به زمان محاسبات اضافی نیاز داشته باشند. اگر همه فیلدها را انتخاب کنید، یا اگر همه فیلدها را در سطح بالا انتخاب کنید، ممکن است با کاهش عملکرد مواجه شوید زیرا هر فیلد جدیدی که اضافه کنیم به طور خودکار در پاسخ گنجانده می شود.
- انتخاب تنها فیلدهایی که به آنها نیاز دارید باعث میشود که اندازه پاسخ کوچکتر و در نتیجه توان عملیاتی شبکه بیشتر شود.
درخواست HTTP
POST https://routespreferred.googleapis.com/v1:computeCustomRoutes
URL از دستور GRPC Transcoding استفاده می کند.
درخواست بدن
بدنه درخواست حاوی داده هایی با ساختار زیر است:
نمایندگی JSON |
---|
{ "origin": { object ( |
فیلدها | |
---|---|
origin | مورد نیاز. نقطه راه مبدأ |
destination | مورد نیاز. ایستگاه بین راهی مقصد |
intermediates[] | اختیاری. مجموعه ای از ایستگاه های بین راهی در طول مسیر (به استثنای نقاط پایانه)، برای توقف یا عبور. حداکثر 25 ایستگاه بین راهی پشتیبانی می شود. |
travelMode | اختیاری. نحوه حمل و نقل را مشخص می کند. اکنون فقط DRIVE پشتیبانی می شود. |
routingPreference | اختیاری. نحوه محاسبه مسیر را مشخص می کند. سرور سعی می کند از اولویت مسیریابی انتخاب شده برای محاسبه مسیر استفاده کند. اگر اولویت مسیریابی منجر به خطا یا تاخیر طولانی مدت شود، یک خطا برگردانده می شود. در آینده، ممکن است مکانیزم بازگشتی را برای استفاده از یک گزینه متفاوت در زمانی که گزینه ترجیحی نتیجه معتبری ارائه نمی دهد، اجرا کنیم. شما می توانید این گزینه را فقط زمانی مشخص کنید که |
polylineQuality | اختیاری. ترجیح شما را برای کیفیت پلی لاین مشخص می کند. |
polylineEncoding | اختیاری. رمزگذاری ترجیحی برای چند خط را مشخص می کند. |
departureTime | اختیاری. زمان حرکت اگر این مقدار را تنظیم نکنید، این مقدار به طور پیشفرض روی زمانی است که درخواست را انجام دادهاید. اگر این مقدار را روی زمانی تنظیم کنید که قبلاً رخ داده است، درخواست با شکست مواجه می شود. یک مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثالها: |
routeModifiers | اختیاری. مجموعه ای از شرایط برای برآورده شدن که بر نحوه محاسبه مسیرها تأثیر می گذارد. |
routeObjective | مورد نیاز. یک هدف مسیر برای بهینه سازی. |
languageCode | اختیاری. کد زبان BCP-47، مانند "en-US" یا "sr-Latn". برای اطلاعات بیشتر، به http://www.unicode.org/reports/tr35/#Unicode_locale_identifier مراجعه کنید. برای لیست زبان های پشتیبانی شده به پشتیبانی زبان مراجعه کنید. وقتی این مقدار را ارائه نمی کنید، زبان نمایش از محل درخواست مسیر استنباط می شود. |
units | اختیاری. واحدهای اندازه گیری فیلدهای نمایش را مشخص می کند. این شامل فیلد |
بدن پاسخگو
در صورت موفقیت آمیز بودن، بدنه پاسخ حاوی نمونه ای از ComputeCustomRoutesResponse
است.
محدوده مجوز
به محدوده OAuth زیر نیاز دارد:
-
https://www.googleapis.com/auth/maps-platform.routespreferred
برای اطلاعات بیشتر، به نمای کلی OAuth 2.0 مراجعه کنید.