در حال بارگذاری

پرش به مطلب اصلی

سرویس ماتریس فاصله (Distance Matrix)

سرویس ماتریس فاصله (Distance Matrix) با بهره‌گیری از داده‌های ترافیک آنلاین، فاصله و زمان سفر را بین مجموعه‌ای از نقاط مبدأ و مقصد محاسبه می‌کند. این سرویس به صورت مجزا برای خودرو و موتورسیکلت قابل استفاده است و تمامی محاسبات بر اساس بهترین مسیر و با در نظر گرفتن وضعیت لحظه‌ای ترافیک انجام می‌شود.

موارد کاربرد

  • شرکت‌های تاکسی آنلاین: محاسبه دقیق زمان و هزینه سفر برای مسافت.
  • شرکت‌های لجستیک و فروشگاه‌های آنلاین: محاسبه دقیق هزینه حمل‌ونقل بر اساس مسافت.
  • مدیریت ناوگان: بهینه‌سازی تخصیص منابع با دانستن فاصله بین وسایل نقلیه.
  • سرویس‌های گردشگری: ارائه اطلاعات دقیق در مورد فاصله هتل‌ها تا جاذبه‌های توریستی.
  • رستوران‌ها و سرویس‌های تحویل غذا: تعیین محدوده بهینه ارسال، برآورد هزینه و زمان تحویل.
  • برنامه‌ریزی شهری: تحلیل فاصله بین امکانات و مراکز مهم شهری.
اطلاع
  1. ۱

    اولین قدم ثبت‌نام و دریافت API KEY برای اپلیکیشنی است که قصد دارید در آن از Map Api نشان استفاده کنید. کافیست در لینک فوق فرم مربوطه را تکمیل کنید تا بلافاصله API KEY را دریافت نمایید.

  2. ۲

    Api Key دریافتی از پنل توسعه‌دهندگان نشان را به صورتی که در ادامه مشاهده می‌کنید از طریق کلید Api-Key در header درخواست سرویس بگنجانید.

  3. ۳

    درخواست خود را با توجه به پارامترهایی که مربوط به سرویس موردنظرتان است با متد GET فراخوانی کنید.

  4. ۴

    چنانچه درخواست شما با موفقیت پردازش و پاسخ داده شود، خروجی با فرمت JSON دریافت خواهید کرد و چنانچه به هر دلیل خطایی رخ دهد، کد خطا بصورت HTTP Status Code و نوع آن با فرمت JSON ارسال می‌گردد. کدهای خطای احتمالی نیز در ادامه به صورت کامل توضیح داده شده‌اند.

شیوه‌ی فراخوانی

این سرویس دارای دو اندپوینت مجزا برای محاسبه با ترافیک و بدون ترافیک است.

با در نظر گرفتن ترافیک لحظه‌ای

GET https://api.neshan.org/v1/distance-matrix?type=car&origins=...&destinations=...

بدون در نظر گرفتن ترافیک

GET https://api.neshan.org/v1/distance-matrix/no-traffic?type=car&origins=...&destinations=...

هدرهای درخواست (Headers)

Api-Key: YOUR_API_KEY

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

پارامترتوضیحاتنوع پارامتر
typeنوع وسیله نقلیه را مشخص می‌کند. مقادیر مجاز car (خودرو) و motorcycle (موتورسیکلت) هستند. مقدار پیش‌فرض car است.اختیاری
originsلیستی از مختصات نقاط مبدأ به‌صورت latitude,longitude. نقاط مختلف با کاراکتر پایپ (|) از هم جدا می‌شوند.اجباری
destinationsلیستی از مختصات نقاط مقصد با فرمتی مشابه origins.اجباری

رمزگذاری آدرس اینترنتی (URL Encoding)

از آنجا که برخی کاراکترها در URL معنای خاصی دارند، باید قبل از ارسال در پارامترها رمزگذاری (Encode) شوند.

مثال: برای جدا کردن نقاط در پارامتر origins از کاراکتر | استفاده می‌شود که معادل رمزگذاری شده آن %7C است.

کاراکترمعادل رمزگذاری
Space%20
"%22
#%23
``
%%25

مستندات و کتابخانه‌ها

برای اطلاعات بیشتر در مورد URL Encoding می‌توانید از منابع زیر استفاده کنید:

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

curl --location 'https://api.neshan.org/v1/distance-matrix?type=car&origins=36.31876204344907%2C59.54472335603879%7C36.31617787431888%2C59.548692437923506%7C36.31405962397302%2C59.55402379242608&destinations=36.338905463387704%2C59.47409301742675%7C36.34057409632669%2C59.466775394793785%7C36.338265845619375%2C59.465756456130975' \
--header 'Api-Key: YOUR_API_KEY'

فرمت پاسخ

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

{
"status": "Ok",
"rows": [
{
"elements": [
{
"status": "Ok",
"duration": { "value": 699, "text": "۱۲ دقیقه" },
"distance": { "value": 8332, "text": "۸ کیلومتر" }
}
]
}
],
"origin_addresses": ["36.317559,59.532226"],
"destination_addresses": ["36.350681,59.545227"]
}

اجزای پاسخ

پارامترتوضیحات
statusوضعیت کلی درخواست را نشان می‌دهد. در صورت موفقیت، مقدار آن Ok است.
origin_addressesآرایه‌ای از مختصات نقاط مبدأ به ترتیب ورودی.
destination_addressesآرایه‌ای از مختصات نقاط مقصد به ترتیب ورودی.
rowsآرایه‌ای از سطرها. هر سطر row متناظر با یک مبدأ از origin_addresses است.

آبجکت row

هر سطر شامل یک آرایه از elements است. هر element نتیجه محاسبه فاصله و زمان بین مبدأ آن سطر و یکی از مقاصد است.

آبجکت element

پارامترتوضیحات
statusوضعیت محاسبه برای این زوج مبدأ و مقصد. مقادیر ممکن: Ok (موفق)، NoRoute (مسیری یافت نشد)، UnknownError (خطای سرور).
distanceآبجکتی شامل فاصله بین دو نقطه. (فقط در صورت status: "Ok")
durationآبجکتی شامل زمان سفر بین دو نقطه. (فقط در صورت status: "Ok")

آبجکت distance و duration

پارامترتوضیحات
valueمقدار عددی: برای distance به متر و برای duration به ثانیه.
textنمایش متنی قابل خواندن برای کاربر.

کد خطاهای سرویس

HTTP CodeStatusDescription
404NOT_FOUNDکد پستی با این مشخصات یافت نشده است
400INVALID_ARGUMENTخطا در پارامتر های ورودی
470CoordinateParseErrorچنانچه مختصات جغرافیایی ارسالی معتبر نباشد رخ خواهد داد.
480KeyNotFoundدر صورتی که در فراخوانی وب‌سرویس از یک Api Key نامعتبر استفاده کنید یا Api Key خود را در header ارسال نکنید رخ خواهد داد.
481LimitExceededدر صورتی که تعداد فراخوانی وب‌سرویس‌ها از میزان مجازی که برای شما تعیین شده‌است عبور کند رخ خواهد داد.
482RateExceededچنانچه تعداد درخواست وب‌سرویس در دقیقه از حد مجاز عبور کند رخ خواهد داد.
483ApiKeyTypeErrorکلید دسترسی استفاده شده با سرویس فراخوانی شده همخوانی ندارد. بایستی از کلید دسترسی مرتبط با سرویس مورد نظر استفاده کنید.
484ApiWhiteListErrorبا توجه به اسکوپ تعریف‌شده برای این کلید، شما مجاز به استفاده نیستید.
485ApiServiceListErrorسرویس فراخوانی شده با سرویس‌های تعریف‌شده برای این کلید دسترسی همخوانی ندارد.
500GenericErrorوقوع خطای ناشناخته