سرویس Map Matching
سرویس نگاشت نقطه بر نقشه (Map Matching API) تعدادی نقاط ورودی را به محتملترین مسیری که این نقاط نشاندهنده آن هستند، نگاشت میکند.
شیوهی فراخوانی:
POST:
https://api.neshan.org/v3/map-matching
Headers:
Api-Key: YOUR_API_KEY
پارامتر های وروردی در Body ریکوئست ارسالی:
- path: در بدنه درخواست ارسالی نقاطی که باید به یک مسیر نگاشت شوند. هر کدام از این نقاط با علامت پایپ ( | ) از یکدیگر جدا شدهاند.مختصات هر نقطه به فرم
latitude,longitude
باشد.
حداقل تعداد نقاط ورودی برابر با 2 و پشتیبانی تا بیش از 1000 نقطه در هر رکوئست. ( به منظور استفاده بهینه از این سرویس توصیه میشود حداکثر تعداد نقاط خود را در هر درخواست ارسال نمائید )
در صورتیکه نکات فوق در نحوه ارسال نقاط رعایت نشود خطای 470 برگردانده میشود.
{
"path": "35.700393,51.33425|35.699708,51.332629|35.699629,51.328615|35.699357,51.328202|35.699536,51.334592|35.699256,51.335387"
}
فرمت پاسخ:
{
"snappedPoints": [
{
"location": {
"latitude": 35.700393,
"longitude": 51.33425
},
"originalIndex": 0
},
{
"location": {
"latitude": 35.699708,
"longitude": 51.332629
},
"originalIndex": 1
},
{
"location": {
"latitude": 35.699629,
"longitude": 51.328615
},
"originalIndex": 2
},
{
"location": {
"latitude": 35.699357,
"longitude": 51.328202
},
"originalIndex": 3
},
{
"location": {
"latitude": 35.699536,
"longitude": 51.334592
},
"originalIndex": 4
},
{
"location": {
"latitude": 35.699256,
"longitude": 51.335387
},
"originalIndex": 5
}
],
"geometry": "mv{xEafixHt@hAb@bAl@tDN`XJjCHXLCHSFy@QgHQu]TaB`@}@"
}
اجزای این پاسخ بصورت زیر میباشند:
- snappedPoints: لیستی از نقاطی است که نقاط ورودی به آنها نگاشت شدهاند. تعداد این نقاط حداکثر برابر با تعداد نقاط ورودی است. از نقاط ورودی که قابل نگاشت شدن به هیچ مسیری نیستند صرف نظر میشود. اجزای هر نقطه به صورت زیر است:هر element به صورت زیر است:
- location: محل نقطه که با دو مقدار latitude و longitude مشخص میشود
- originalIndex: اندیسی است که مشخص میکند این نقطه نگاشت کدام یک از نقاط ورودی است. شماره اندیسها از 0 شروع میشود و برای n ورودی حداکثر n-1 است.
- geometry: مسیر به صورت Encoded Polyline که از نقاط نگاشت شده عبور میکند.
نکته: در صورتی که تعداد زیادی از نقاط قابلیت نگاشت شدن نداشته باشند خطای 404 برگردانده میشود.
با فراخوانی این API در صورت وجود اشکال ممکن است، خطاهای زیر در خروجی برای شما ارسال گردند. شناسایی و مدیریت این خطاها میتواند به از بروز خطاهای احتمالی در اپلیکیشن شما جلوگیری کند. این خطاها عبارتند از:
470 : CoordinateParseError
چنانچه مختصات جغرافیایی ارسالی معتبر نباشد رخ خواهد داد.
480 : KeyNotFound
در صورتی که در فراخوانی وبسرویس از یک Api Key نامتعبر استفاده کنید یا Api Key خود را در header ارسال نکنید رخ خواهد داد.
481 : LimitExceeded
در صورتی که تعداد فراخوانی وبسرویسها از میزان مجازی که برای شما تعیین شدهاست عبور کند رخ خواهد داد.
482 : RateExceeded
چنانچه تعداد درخواست وبسرویس در دقیقه از حد مجاز عبور کند رخ خواهد داد.
483 : ApiKeyTypeError
کلید دسترسی استفاده شده با سرویس فراخوانی شده همخوانی ندارد. بایستی از کلید دسترسی مرتبط با سرویس موردنظر استفاده کنید.
484 : ApiWhiteListError
با توجه به اسکوپ تعریفشده برای این کلید، شما مجاز به استفاده نیستید.
485 : ApiServiceListError
سرویس فراخوانی شده با سرویسهای تعریفشده برای این کلید دسترسی همخوانی ندارد.
500 : GenericError
در صورت بروز خطایی غیر از خطاهای بالا این خطا گزارش میشود.