مسیر بهینهٔ چندمقصده
بهترین ترتیب بازدید از چند مقصد برای پیک و ارسال فروشگاهها، با یک درخواست.
POST https://api.uttamap.ir/v1/route/optimize
پیک یا رانندهای که باید به چند نشانی برود، این endpoint را صدا میزند و ترتیب بازدید، مسیر کامل و مقداری را که نسبت به ترتیب اولیه صرفهجویی شده برمیگیرد. محاسبهٔ ترتیب با موتور مسیریابی انجام میشود و قواعد مسیریابی یوتامپ همینجا هم برقرار است: موتورسیکلت وارد آزادراه و بزرگراه نمیشود و هیچ مسیری خلاف یکطرفه نیست.
curl -X POST https://api.uttamap.ir/v1/route/optimize -H "X-Api-Key: um_sk_..." \
-H "Content-Type: application/json" \
-d '{"origin":[35.7200,51.3300],"stops":[[35.6900,51.3300],[35.7500,51.4100],[35.7000,51.4200]],"mode":"motorcycle","optimize":true,"end":"last"}'
{
"order": [1, 0, 2],
"routes": [ { "distance_m": 21400, "duration_s": 2310, "geometry": "<polyline6>", "legs": [ { "distance_m": 9800, "duration_s": 1010, "steps": [ … ] }, … ] } ],
"distance_m": 21400,
"duration_s": 2310,
"optimized": true,
"end": "last",
"saved_distance_m": 5200,
"saved_duration_s": 540
}
بدنه
| فیلد | توضیح |
|---|---|
origin | مبدأ، [lat, lng]. |
stops | مقصدها، هر کدام [lat, lng]. در حالت بهینه حداکثر ۱۵ و در حالت ترتیبی حداکثر ۲۵. |
mode | car (پیشفرض)، motorcycle، walk یا bike. |
optimize | true (پیشفرض): بهترین ترتیب. false: همان ترتیبی که فرستادید. |
end | last (پیشفرض): آخرین مقصدِ فهرست، مقصد آخر میماند. origin: سفر به مبدأ برمیگردد. any: هر جا کوتاهتر بود تمام شود. |
steps، lang، geometry | مثل مسیریابی: دستورهای فارسی، fa یا en، polyline6 یا geojson. |
پاسخ
order: اندیس مقصدها درstopsبه ترتیب بازدید. شمارهٔ روی مارکرها همین است.routes: یک مسیر با قالب مسیریابی که بین هر دو نقطهٔ پشتسرهم یکlegدارد. باend=originآخرین leg به مبدأ برمیگردد.saved_distance_mوsaved_duration_s: تفاوت با ترتیبی که فرستادید. هدف بهینهسازی زمان سفر است، پس ممکن است مسیر کوتاهترِ زمانی کمی مسافت بیشتری داشته باشد. پاسخ هرگز بدتر از ترتیب ورودی شما نیست؛ اگر ترتیب شما بهترین باشد، همان برمیگردد وoptimizedبرابرfalseاست.
شمارش
optimize=true: بهازای هر مقصد ۲ درخواست (سرویسroute_optimize)، چون موتور برای یافتن ترتیب، ماتریس فاصلهٔ همهٔ نقطهها را حساب میکند. ۱۰ مقصد = ۲۰ درخواست.optimize=false: مثل یک مسیریابی معمولی، ۱ درخواست.- بیش از ۱۵ مقصد در حالت بهینه:
413 too_many_points، بدون شمارش. مقصدها را در چند درخواست تقسیم کنید. - کلیدی که سرویس «مسیریابی» برایش مجاز است، مسیر بهینه را هم میتواند صدا بزند.
زمانها بدون ترافیک زنده و بر اساس سرعت معمول هر نوع راهاند.