سرویس مرتب‌سازی چندین مبدا از نقطه مقصد

سرویس مرتب‌سازی چند مبدا از نقطه مقصد، نقاط (چندین مبدا) نسبت به یک نقطه مشخص (مقصد) را بر حسب مسافت بین آن‌ها مرتب می‌کند. مختصات جغرافیایی نقاط مبدا و مقصد به سرویس ارسال می‌شوند و سرویس در پاسخ نقاط مبدا مرتب شده بر اساس کم‌ترین قاصله تا مقصد (به صورت صعودی) را برمی‌گرداند.

ساختار کلی سرویس

get
/direction/sorted-origins?parameters

پارامترهای ورودی

پارامترهای مورد نیاز

پارامتر توضیحات
origins مجموعه نقاط مبدا درخواستی را مشخص می‌کند. این  نقاط با | از هم جدا می‌شوند. هر نقطه دارای طول و عرض جغرافیایی است که با , از هم تفکیک می‌شوند.
destination مختصات جغرافیایی نقطه مقصد است. طول و عرض جغرافیایی این نقطه با ,  از هم تفکیک می‌شود.

پارامترهای اختیاری

پارامترهای اختیاری آپشن‌ها و امکانات مختلف سرویس را ارائه می‌دهند. ارسال آن‌ها جهت استفاده از سرویس اجباری نیست.

پارامتر توضیحات مقدار پیش‌فرض
request_id در صورت ست شدن پارامتر فوق، به صورت یکتا در روز می‌توان برای پیگیری استفاده نمود. به صورت پیش فرض، عدم پیگیری در روز است.

نمونه درخواست

درخواست مرتب‌سازی چند مبدا از نقطه مقصد

با ارسال مختصات جغرافیایی نقاط مبدا و مقصد، نقاط مبدا مرتب شده بر اساس کم‌ترین قاصله تا مقصد (به صورت صعودی) برگردانده می‌شوند.

https://api.parsimap.ir/direction/sorted-origins?key=PMI_API_TOKEN&origins=51.33769,35.69971|51.34034,35.6968751.33108,35.69630&destination=1.33368,35.701258&travel_mode=driving&request_id=false

نمونه پاسخ

{
  "results": [
    {
      "start_id": 0,
      "distance": {
        "text": "۹۲۹ کیلومتر ۴۵۷ متر",
        "value": 929457
      },
      "duration": {
        "text": "۱۱ ساعت ۳۷ دقیقه",
        "value": 41875
      },
      "start_location": {
        "lat": 35.698698,
        "lng": 51.337759
      },
      "end_location": {
        "lat": 39.371556,
        "lng": 44.033153
      }
    },
    {
      "start_id": 2,
      "distance": {
        "text": "۹۲۹ کیلومتر ۷۳۵ متر",
        "value": 929735
      },
      "duration": {
        "text": "۱۱ ساعت ۴۰ دقیقه",
        "value": 42009
      },
      "start_location": {
        "lat": 35.696148,
        "lng": 51.330831
      },
      "end_location": {
        "lat": 39.371556,
        "lng": 44.033153
      }
    },
    {
      "start_id": 1,
      "distance": {
        "text": "۹۳۰ کیلومتر ۸۴۶ متر",
        "value": 930846
      },
      "duration": {
        "text": "۱۱ ساعت ۴۰ دقیقه",
        "value": 42015
      },
      "start_location": {
        "lat": 35.696839,
        "lng": 51.341147
      },
      "end_location": {
        "lat": 39.371556,
        "lng": 44.033153
      }
    }
  ],
  "status": "OK"
}

پارامترهای خروجی

پارامتر توضیحات
results نتایج حاصل از مرتب‌سازی نقاط مبدا است. results شامل بخش‌های است که هر بخش خود شامل شناسه یکتای نقاط مبدا (start_id)، مسافت، مختصات نقطه شروع و پایان مسیر برای هر دو نقطه تعیین شده در ورودی (مبداها-مقصد) است. برای هر نقطه مبدا یک شناسه یکتا (start_id) تعریف می‌شود. ترتیب قرارگیری این بخش‌ها مهم است، زیرا نقاط مبدا با start_id منحصر بفرد خود بر‌اساس کم‌ترین فاصله تا نقطه مقصد و به صورت صعودی در این بخش قرار می‌گیرند. اولین بخش مربوط به مبدایی است که کم‌ترین فاصله تا مقصد مورد نظر را دارد.
اولین مبدا وارد شده دارای start_id صفر است و بقیه نقاط مبدا به ترتیب از start_id یک تا آخر شماره گزاری می‌شوند. برای مثال، در خروجی فوق اولین start_id در بخش results برابر صفر است، بدین معنی که کمترین فاصله تا مقصد را اولین مبدا وارد شده دارد. پس از آن مبدا با start_id دو که سومین مبدا وارد شده است، کمترین مسافات تا مقصد را دارا است. در این مثال start_id یک که دومین مبدا وارد شده است دارای بیشترین فاصله مقصد است.
  • distance: مسافت بین نقاط ورودی و خروجی در هر بخش است. مسافت فوق شامل مقدار عددی text و حرفی value فاصله‌ی بین دو نقطه بر حسب متر است.
  • start_location: مختصات نقطه شروع هر مسیر است.
  • end_location: مختصات نقطه پایان مسیر است که برابر با مختصات نقطه destination در ورودی است.
status نتیجه درخواست را نشان می‌دهد. برای مثال نتیجه این درخواست OK است که به معنی موفق بودن درخواست است. نتیجه پاسخ به درخواست ارسالی توسط کاربر در قالب جدول زیر ارائه شده است: جدول

مرتب سازی چند مبدا از نقطه مقصد با متد POST

پارامترهای سرویس به صورت POST ارسال می‌گردند. برای ارسال درخواست با استفاده از متد POST پارامتر headers باید به صورت زیر تعیین شود.

"Content-Type": "application/x-www-form-urlencoded"

نمونه درخواست Node.js

درخواست مرتب سازی چند مبدا از نقطه مقصد با متد POST

var request = require("request");
var options = {
  method: "POST",
  url:
    "https://api.parsimap.ir/direction/sort-origins?key=PMI_API_TOKEN",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded",
  },
  form: {
    origins: "51.32569,35.70859|51.33895,35.89547|51.34125,35.69879",
    destination: "51.34986,35.72687",
  },
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

نمونه پاسخ

{
  "results": [
    {
      "start_id": 0,
      "distance": {
        "text": "۶ کیلومتر ۳۵۸ متر",
        "value": 6358
      },
      "duration": {
        "text": "۹ دقیقه ۳۶ ثانیه",
        "value": 576
      },
      "start_location": {
        "lat": 35.709529,
        "lng": 51.325015
      },
      "end_location": {
        "lat": 35.72687,
        "lng": 51.349856
      }
    },
    {
      "start_id": 2,
      "distance": {
        "text": "۸ کیلومتر ۵۸۱ متر",
        "value": 8581
      },
      "duration": {
        "text": "۱۱ دقیقه ۳۲ ثانیه",
        "value": 692
      },
      "start_location": {
        "lat": 35.698963,
        "lng": 51.340979
      },
      "end_location": {
        "lat": 35.72687,
        "lng": 51.349856
      }
    },
    {
      "start_id": 1,
      "distance": {
        "text": "۳۸ کیلومتر ۳۰۶ متر",
        "value": 38306
      },
      "duration": {
        "text": "۵۵ دقیقه ۴۱ ثانیه",
        "value": 3341
      },
      "start_location": {
        "lat": 35.88042,
        "lng": 51.341205
      },
      "end_location": {
        "lat": 35.72687,
        "lng": 51.349856
      }
    }
  ],
  "status": "OK"
}