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

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

سرویس نگاشت نقطه بر نقشه (Map Matching API)

اطلاع

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

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

این سرویس با قابلیت پردازش بیش از ۱۰۰۰ نقطه در هر درخواست، برای تحلیل مسیر، مسیریابی پیشرفته و هر کاربردی که به مسیر دقیق نیاز دارد، ایده‌آل است.

اطلاع
  1. ۱

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

  2. ۲

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

  3. ۳

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

  4. ۴

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

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

برای استفاده از این سرویس، یک درخواست POST به اندپوینت زیر ارسال کنید:

https://api.neshan.org/v3/map-matching

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

Api-Key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded

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

درخواست باید شامل پارامتر path در بدنه‌ی خود باشد.

پارامترتوضیحاتنوع پارامتر
pathرشته‌ای شامل مختصات نقاط ورودی به‌صورت latitude,longitude. هر نقطه باید با کاراکتر پایپ (|) از نقطه‌ی دیگر جدا شود. حداقل ۲ نقطه و حداکثر ۱۰۰۰ نقطه در هر درخواست پشتیبانی می‌شود.اجباری

نمونه بدنه درخواست (Request Body)

path=35.7001,51.3882|35.7005,51.3895|35.7010,51.3905

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

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

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

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

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

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

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

curl --location 'https://api.neshan.org/v3/map-matching' \
--header 'Api-Key: YOUR_API_KEY' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'path=35.7001,51.3882|35.7005,51.3895|35.7010,51.3905'

فرمت پاسخ

پاسخ شامل نقاط نگاشت‌شده روی نقشه و یک Polyline انکود شده از کل مسیر است.

{
"snappedPoints": [
{
"location": [35.70015, 51.38825],
"originalIndex": 0
},
{
"location": [35.70052, 51.38953],
"originalIndex": 1
},
{
"location": [35.70103, 51.39051],
"originalIndex": 2
}
],
"geometry": "encoded_polyline_string_here"
}

اجزای پاسخ

پارامترتوضیحات
snappedPointsلیستی از نقاطی که به مسیر واقعی نگاشت شده‌اند. نقاطی که قابلیت نگاشت نداشته باشند، از این لیست حذف می‌شوند.
geometryژئومتری کل مسیر عبوری از نقاط نگاشت‌شده که به صورت Encoded Polyline ارائه می‌شود.

آبجکت snappedPoint

پارامترتوضیحات
locationمختصات نقطه نگاشت‌شده به صورت [latitude, longitude].
originalIndexاندیس (شماره ترتیب) نقطه ورودی متناظر با این نقطه نگاشت‌شده (شروع از 0).

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

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

چنانچه تعداد زیادی از نقاط ورودی قابلیت نگاشت شدن به هیچ مسیری را نداشته باشند، سرویس خطای 404 Not Found را باز می‌گرداند.