سرویس محاسبه ماتریس مسافت

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

قابلیت‌های سرویس

ارائه ماتریس مسافت
ارائه ماتریس مسافت و زمان
تخمین زمان سفر بین نقاط با احتساب ترافیک و یا بدون درنظر گرفتن ترافیک

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

get
/direction/distance-matrix?parameters

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

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

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

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

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

پارامتر توضیحات مقدار پیش‌فرض
durations ماتریس زمان بین تمامی جفت نقاط مبدا و مقصد را تعیین می‌کند. اگر مقدار این پارامتر false باشد و یا مقداری وارد نشده باشد تنها ماتریس مسافت برگردانده می‌شود. در صورت درخواست فاصله زمانی و مکانی بین مسیرها، مقدار این پارامتر باید true وارد شود. مقدار پیش‌فرض سرویس false است.
travel_mode نوع وسیله نقلیه را مشخص می‌کند. این سرویس قابلیت انتخاب وسایل نقلیه خودرو و موتورسیکلت را دارد. درصورتیکه مقدار این پارامتر driving یا ۰ باشد و یا مقداری برای آن وارد نشده باشد تخمین زمانی برای ماشین و اگر ۱ یا motorcycling باشد تخمین زمانی برای موتور است. پیش‌فرض وسیله نقلیه خودرو (driving) است.
traffic احتساب و یا عدم احتساب ترافیک در تعیین زمان سفر را تعیین می‌کند. درصورت درخواست کردن محاسبه زمان سفر با در نظر گرفتن ترافیک، مقدار این پارامتر باید true باشد.
در صورت درخواست کردن تعیین زمان سفر بدون در نظر گرفتن ترافیک، مقدار این پارامتر باید به false تغییر یابد. 
پیش‌فرض، عدم درنظرگرفتن ترافیک (false) در محاسیه زمان سفر است.
request_id در صورت ست شدن پارامتر فوق، به صورت یکتا در روز می‌توان برای پیگیری استفاده نمود. به صورت پیش فرض، عدم پیگیری در روز است.

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

درخواست محاسبه ماتریس مسافت

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

https://api.parsimap.ir/direction/distance-matrix?key=PMI_API_TOKEN&origins=51.33769,35.69971|51.34034,35.69687|51.33108,35.69630&destinations=51.03769,35.29971|51.64034,35.99687|51.63108,35.19630&durations=false&travel_mode=driving&request_id=false&traffic=false

نمونه پاسخ

{
  "origins": [
    {
      "lat": 35.69971,
      "lng": 51.33769
    },
    {
      "lat": 35.69687,
      "lng": 51.34034
    },
    {
      "lat": 35.6963,
      "lng": 51.33108
    }
  ],
  "destinations": [
    {
      "lat": 35.29971,
      "lng": 51.03769
    },
    {
      "lat": 35.99687,
      "lng": 51.64034
    },
    {
      "lat": 35.1963,
      "lng": 51.63108
    }
  ],
  "distances": [
    [
      68386,
      62847,
      77633
    ],
    [
      65561,
      64234,
      77168
    ],
    [
      65344,
      63937,
      78514
    ]
  ],
  "travel_mode": "driving",
  "status": "OK"
}

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

پارامتر توضیحات
origins مختصات جغرافیایی نقاط مبدا است.
destinations مختصات جغرافیایی نقاط مقصد است.
distance ماتریس مسافت بین جفت نقاط مبدا و مقصد است. درایه‌های این ماتریس فاصله مکانی بین هر جفت نقطه مبدا و مقصد است.
status نتیجه درخواست را نشان می‌دهد. برای مثال نتیجه این درخواست OK است که به معنی موفق بودن درخواست است. نتیجه پاسخ به درخواست ارسالی توسط کاربر در قالب جدول زیر ارائه شده است: جدول

درخواست محاسبه ماتریس مسافت و زمان

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

https://api.parsimap.ir/direction/distance-matrix?key=PMI_API_TOKEN&origins=51.33769,35.69971|51.34034,35.69687|51.33108,35.69630&destinations=51.03769,35.29971|51.64034,35.99687|51.63108,35.19630&durations=true&travel_mode=driving&request_id=false&traffic=false

نمونه پاسخ

{
  "origins": [
    {
      "lat": 35.69971,
      "lng": 51.33769
    },
    {
      "lat": 35.69687,
      "lng": 51.34034
    },
    {
      "lat": 35.6963,
      "lng": 51.33108
    }
  ],
  "destinations": [
    {
      "lat": 35.29971,
      "lng": 51.03769
    },
    {
      "lat": 35.99687,
      "lng": 51.64034
    },
    {
      "lat": 35.1963,
      "lng": 51.63108
    }
  ],
  "distances": [
    [
      68386,
      62847,
      77633
    ],
    [
      65561,
      64234,
      77168
    ],
    [
      65344,
      63937,
      78514
    ]
  ],
  "durations": [
    [
      3290,
      4597,
      4853
    ],
    [
      3256,
      4737,
      4878
    ],
    [
      3226,
      4731,
      4922
    ]
  ],
  "travel_mode": "driving",
   "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/distance-matrix?key=PMI_API_TOKEN",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded",
  },
  form: {
    origins: "51.33145,35.69171|51.342156,35.71687|51.34012,35.71230",
    destinations: "51.33769,35.69971|51.34034,35.69687|51.33108,35.69630",
  },
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

نمونه پاسخ

{
  "origins": [
    {
      "lat": 35.69171,
      "lng": 51.33145
    },
    {
      "lat": 35.71687,
      "lng": 51.342156
    },
    {
      "lat": 35.7123,
      "lng": 51.34012
    }
  ],
  "destinations": [
    {
      "lat": 35.69971,
      "lng": 51.33769
    },
    {
      "lat": 35.69687,
      "lng": 51.34034
    },
    {
      "lat": 35.6963,
      "lng": 51.33108
    }
  ],
  "distances": [
    [
      2178,
      1835,
      835
    ],
    [
      4493,
      4016,
      6885
    ],
    [
      4855,
      4596,
      7248
    ]
  ],
  "durations": [
    [
      261,
      209,
      100
    ],
    [
      362,
      436,
      564
    ],
    [
      446,
      522,
      647
    ]
  ],
  "travel_mode": "driving",
   "status": "OK"
}