Menu
Menu
سرویس Distance Matrix با در نظر گرفتن ترافیک (برای خودرو و موتور سیکلت بصورت مجزا)
پلتفرم نقشه نشان با بهرهگیری از داده و مشارکت جامعه کاربران ده میلیونی مسیریاب نشان، تنها ارائهدهنده ایرانی سرویس ماتریس فاصله بر اساس دیتای ترافیک آنلاین است.
با استفاده از وبسرویس ماتریس فاصله (Distance Matrix API) میتوانید فاصله و زمان حرکت میان ماتریسی از نقاط شروع و پایانی را به دست آورید. تمامی فواصل و زمانها با در نظر گرفتن بهترین مسیر بر اساس وضعیت فعلی ترافیک محاسبه میشوند.
شیوهی فراخوانی:
با محاسبه ترافیک لحظه ای:
GET:
https://api.neshan.org/v1/distance-matrix?type=car&origins=36.3177579,59.5323219|36.337115,59.530621&destinations=36.35067,59.5451965|36.337005,59.530021
Headers:
Api-Key: YOUR_API_KEY
بدون ترافیک:
GET:
https://api.neshan.org/v1/distance-matrix/no-traffic?type=car&origins=36.3177579,59.5323219|36.337115,59.530621&destinations=36.35067,59.5451965|36.337005,59.530021
Headers:
Api-Key: YOUR_API_KEY
پارامتر های وروردی:
- type: مشخص میکند که محاسبه مسافت و زمان، مخصوص به خودرو یا موتورسیکلت استفاده شود. مقدار آن میتواند
car
برای مسیریابی خودرو وmotorcycle
برای مسیریابی موتور باشد. (مقدار پیش فرض این پارامترcar
است) - origins: لیستی از مختصات نقاط شروعی. هر کدام از این مختصات باید به فرم
latitude,longitude
باشند که با کاما (,) از یکدیگر جدا شدهاند. در صورتی که تعداد مختصات بیشتر از یک عدد باشد از علامت پایپ ( | ) برای جداسازی آنها استفاده میشود. - destinations: لیستی از مختصات نقاط پایانی که قالب آن مانند origins است
رمزگذاری آدرس اینترنتی :
بعضی از حروف و کاراکترها نمیتوانند بصورت مستقیم در آدرس قرار بگیرند زیراکه این کاراکترها دارای معانی خاص خود هستند به عنوان مثال کاراکتر (=) برای جداسازی کلید و مقدار آن کلید مورد استفاده قرار میگیرد از این رو در نحو نوشتاری عمومی آدرس های اینترنتی رمزگذاری مطرح شد که این مشکل را به صورت عمومی حل کند .
بعضی از کاراکترهای خاص و معادل رمزگذاری شده آن ها :
معادل رمزگذاری | کاراکتر |
%20 | Space |
%22 | “ |
%23 | # |
%7C | | |
%25 | % |
مستندات و کتابخانه ها :
- مستندات گوگل
- ساخت یک پارامتر موفق UrlEncode
- کتابخانه ها و توابع برای زبان ها (جاوا ، جاوااسکریپت , Php)
فرمت پاسخ:
{
"status": "Ok",
"rows": [
{
"elements": [
{
"status": "Ok",
"duration": {
"value": 699,
"text": "۱۲ دقیقه"
},
"distance": {
"value": 8332,
"text": "۸ کیلومتر"
}
},
{
"status": "Ok",
"duration": {
"value": 605,
"text": "۱۰ دقیقه"
},
"distance": {
"value": 5373,
"text": "۵ کیلومتر"
}
}
]
},
{
"elements": [
{
"status": "Ok",
"duration": {
"value": 511,
"text": "۹ دقیقه"
},
"distance": {
"value": 5317,
"text": "۵ کیلومتر"
}
},
{
"status": "Ok",
"duration": {
"value": 69,
"text": "۱ دقیقه"
},
"distance": {
"value": 389,
"text": "۴۰۰ متر"
}
}
]
}
],
"origin_addresses": [
"36.317559,59.532226",
"36.337077,59.530843"
],
"destination_addresses": [
"36.350681,59.545227",
"36.337012,59.530023"
]
}
اجزای این پاسخ بصورت زیر میباشند:
- status: وضعیت کلی درخواست را نشان میدهد.در صورتی که درخواست شما با موفقیت پردازش شده باشد مقدار آن “Ok” است.
- origin_addresses: آرایهای از مختصات نقاط شروعی.هر کدام از مختصات به فرم
latitude,longitude
هستند. - destination_addresses: آرایهای از مختصات نقاط پایانی. هر کدام از مختصات به فرم
latitude,longitude
هستند. - rows: پاسخ Distance Matrix در آرایه ای از سطرها (rows) ذخیره میشود که هر سطر شامل آرایهای از المنتها (elements) است.
ترتیب قرار گرفتن سطر ها بر اساس مقادیر قرار گرفته در origin_addresses است به طوری که سطر iام متناظر با مختصات iام در آرایه origin_addresses می باشد.- elements: آرایهای از element هاست و ترتیب قرار گرفتن المنتها (elements) در هر سطر براساس مقادیر قرار گرفته در destination_addresses است به طوری که المنت iام متناظر با مختصات iام در آرایه destination_addresses میباشد. هر element نشان دهنده زمان-مسافت بین یک زوج از نقاط شروعی و پایانی میباشد.
اجزای هر element به صورت زیر هستند:- status: سه حالت برای این مقدار وجود دارد:
- NoRoute: هیچ مسیری بین دو نقطه شروع و پایان وجود ندارد.
- UnknownError: نشان دهنده مشکل سمت سرور در هنگام پردازش این element است.ممکن است با تلاش دوباره این مشکل برطرف شود.
- Ok: پردازش element با موفقیت انجام شده است. فقط در این حالت دو متغیر distance و duration وجود دارند.
- distance: فاصله بین دو نقطه که به دو صورت عددی و قابل خواندن ارائه میشود. در فرمت عددی مقدار فاصله به متر است.
- duration: زمان سفر بین دو نقطه که به دو صورت عددی و قابل خواند ارائه میشود. در فرمت عددی مقدار زمان به ثانیه است.
- status: سه حالت برای این مقدار وجود دارد:
- elements: آرایهای از element هاست و ترتیب قرار گرفتن المنتها (elements) در هر سطر براساس مقادیر قرار گرفته در destination_addresses است به طوری که المنت iام متناظر با مختصات iام در آرایه destination_addresses میباشد. هر element نشان دهنده زمان-مسافت بین یک زوج از نقاط شروعی و پایانی میباشد.
نمونه کد برای وب سرویس ماتریس فاصله :
جهت حفظ امنیت کلید دسترسی خود بهتر است، کلیه فراخوانی های سرویس های نشان به صورت سرور ساید انجام شود.
مزایای این روش فراخوانی به شرح زیر است.
مزایای این روش فراخوانی به شرح زیر است.
- دیگر نیازی به ارسال کلید دسترسی به صورت کلاینت ساید ندارید و کلید دسترسی شما در معرض سرقت قرار نمیگیرد.
- میتوانید برای کلید خود whitelist تعیین کنید.
- در صورت انتشار ورژن جدید سرویس ها در پلتفرم نشان براحتی امکان بروزرسانی api را خواهید داشت.
نمونه کد برای وب سرویس ماتریس فاصله :
این نمونه کد ها برای دو زبان PHP و JavaScript طراحی شده اند شما برای استفاده از نمونه کد ها نیاز به دو کلید دسترسی مخصوص سرویس ماتریس فاصله و کیت توسعه نقشه وب نشان دارید.
شیوهی فراخوانی:
کلید دسترسی سرویس (api-key)
برای ساخت کلید دسترسی (api-key) مناسب برای این سرویس شما باید در پنل ساخت کلید دسترسی گزینه سرویس ها و سپس ماتریس فاصله را انتخاب کنید.
این را هم در نظر داشته باشید برای امنیت بیشتر کلید دسترسی خود و جلو گیری از سواستفاده شدن از آن IP سرور خود را نیز میتوانید در فیلد دامنه/Ip های مجاز وارد کنید.
بازتاب: وبسرویس نگاشت نقطه بر نقشه – پلتفرم نقشه نشان