تعریف سرویس#
سرویس مسیریابی (Routing) مپ با دریافت مختصات مجموعهای از نقاط بهصورت دو یا چند نقطه یا بهصورت یک polyline، تمامی دادههای مربوط به بهینهترین مسیر بین نقاط را بهصورت خروجی JSON در اختیار شما قرار میده. شما بهوسیله API مسیریابی مپ میتونید با مشخصکردن دو یا چند نقطه، مسیر بهینه، مسیر جایگزین، فاصله بین نقاط، زمان رسیدن به مقصد، کلیهی معابر طی مسیر بهصورت گامهای geohash و… رو دریافت کنید.
نکته 🚧
درحالحاضر مسیریابی در شهرهای تهران، مشهد، تبریز، کرج، اصفهان، شیراز، رشت و قم با درنظرگرفتن ترافیک و در سایر شهرها بدون در نظر گرفتن ترافیک صورت میگیره. در نتیجه زمان رسیدن به مقصد (ETA) در تهران، مشهد، تبریز، کرج، اصفهان، شیراز، رشت و قم بهصورت واقعی و برای سایر نقاط (شهرها) براساس حداکثر سرعت تردد در معابر محاسبه میشه.
دسترسی به این سرویس از طریق API مسیریابی مپ که با Convention Restful طراحی شده فراهم شده. سرویس مسیریابی امکانات متنوعی رو برای توسعهدهندگان فراهم میآورد تا بتوانند جزئیات مختلفی را در مسیریابی اعمال کنند. این ویژگیها شامل موارد زیر میشود:
- مسیریابی جهت تردد با خودرو
- مسیریابی جهت تردد با دوچرخه
- مسیریابی جهت تردد پیاده
- درنظرگرفتن محدودیتهای ترافیکی (طرح ترافیک یا زوج و فرد)
- نمایش مسیر جایگزین
- دریافت اطلاعات مسیر با جزئیات هر معبر عبوری
- سادهسازی نمایش مسیر برای بزرگنماییهای پایین
تفاوت مسیریابی دوچرخه با مسیریابی استاندارد خودرو در سرعت اعلام شده در ETA و جلوگیری از حرکت در بزرگراه برای دوچرخه هستش. تفاوت مسیریابی پیاده با مسیریابی استاندارد در سرعت اعلامی برای ETA و همچنین دسترسی پیاده به خیابانهای یکطرفه، پلهای عابرپیاده، مسیرهای زیرگذر عابرپیاده و مسیرهای پیاده رو هست.
پیشنمایش سرویس مسیریابی مپ
برای مشاهدهی این سرویس در عمل و پیادهسازیشدهی آن از دموهای زیر استفاده کنید.
⬅️ دموی سرویس مسیریابی (Route): https://help.map.ir/demo/route
✅ میتونید مثال استفاده از سرویس مسیریابی در SDK وب مپ رو در 🔗 این صفحه مشاهده کنید.
اصطلاحات کاربردی#
ردیف | نام اصطلاح | شرح اصطلاح |
---|---|---|
۱ | Geohash | فرمتی جهت نگهداری دادههای جغرافیایی بهصورت فشرده |
۲ | Leaflet | یک کتابخانهی متنباز JavaScript که بهعنوان ابزاری رایج جهت ساخت و نمایش نقشه بهصورت تحت وب استفاده میشود |
۳ | Front end | راهکاری برای نمایش اطلاعات از طریق یک رابط گرافیکی جهت مشاهده و تعامل کاربر از طریق HTML، CSS و یا JavaScript |
۴ | Zoom Level | اندازهی بزرگنمایی نقشه |
۵ | Lat (Latitude) | عرض جغرافیایی |
۶ | Lon (Longitude) | طول جغرافیایی |
زیربخشها (Endpoints)#
سرویس مسیریابی با دریافت مقادیر ورودی، جزییات کاملی دربارهی مسیر بهینه بین مبدأ و مقصد و یا مجموعهی نقاط مشخص شده رو ارائه میده. این دادهها شامل مواردی همچون مسیر به همراه جزئیات معابر، زمان رسیدن به مقصد و طول مسیرهست. زمان رسیدن به مقصد در حال حاضر برای شهر تهران بر اساس دادههای ترافیکی (ETA) و برای سایر نقاط با درنظرگرفتن حداکثر سرعت معابر محاسبه میشه. سرویس مسیریابی برای حالتهای مختلف تردد و همچنین درنظرگرفتن محدودیتهای ترافیکی از end-pointهای مختلفی استفاده میکنه. از این رو برای هر یک از روشهای مسیریابی باید درخواست خود رو به یکی از این آدرسها ارسال کنید.
ردیف | نوع مسیر | آدرس endpoint |
---|---|---|
۱ | مسیریابی با خودرو بدون درنظرگرفتن طرح ترافیک | {route/v1/driving/{coordinates/ |
۲ | مسیریابی با خودرو با درنظرگرفتن طرح ترافیک | {tarh/v1/driving/{coordinates/ |
۳ | مسیریابی با خودرو با درنظرگرفتن طرح زوج و فرد | {zojofard/v1/driving/{coordinates/ |
۴ | مسیریابی با دوچرخه | {bicycle/v1/driving/{coordinates/ |
۵ | مسیریابی پیاده | {foot/v1/driving/{coordinates/ |
نکته 🚧
مسیریابی با اعمال محدودیت طرح ترافیک برای شهرهای زیر در دسترس است:
• اصفهان
• تبریز
• تهران
• کرج
• مشهد
نکته 🚧
مسیریابی با اعمال محدودیت طرح زوج و فرد برای شهرهای زیر در دسترس است:
• تهران
پارامترهای ورودی#
API مسیریابی مپ بهصورت Restful توسعه دادهشده و از انعطافپذیری بسیار بالایی برای انواع روشهای پیادهسازی در محیطهای مختلف برخوردار هستش. برای پیادهسازی این سرویس لازم است پارامترهای زیر بهعنوان مقادیر ورودی در اختیار سرویس مسیریابی قرار گیرد:
ردیف | پارامترهای ورودی | نوع پارامتر | توضیحات | مقادیر قابل دریافت | جنس پارامتر | نحوهی ارسال |
---|---|---|---|---|---|---|
۱ | x-api-key * | اجباری | کلیدی اختصاصی دسترسی به سرویسهای مپ (API Key) | API Key اختصاصی معتبر | string | Header |
۲ | coordinates* | اجباری | مختصات نقاط مبدا و مقصد به صورت یک یا چند نقطه به صورت ترتیبی و یا یک polyline | آرایهای از مختصات به صورت lat, lon یا یک polyline | string | path |
۳ | alternatives | اختیاری | ارائه مسیر جایگزین | true/false | boolean | query |
۴ | steps | اختیاری | دریافت جزییات معابر مسیر به صورت geohash | true/false | boolean | query |
۵ | overview | اختیاری | سادهسازی جزییات نمایش مسیر در بزرگنماییهای پایین | full/simplified/false | string | query |
۶ | geometries | اختیاری | انتخاب فرمت خروجی مسیر | polyline (default), polyline6 , geojson | string | query |
نکته 🚧
اگر API Key اختصاصی خودتون رو دریافت نکردهاید کافیه به صورت رایگان ثبت نام و با ساخت پروژه جدید API Key اختصاصی دریافت نمایید.
نکته 🚧
ساختار ورود مختصات دو نقطه در coordinates به صورت ترتیبی زیر است:
origin_longitude,origin_latitude; destination_longitude,destination_latitude
نکته 🚧
ساختار ورود مختصات x نقطه در coordinates به صورت ترتیبی زیر است:
origin_longitude,origin_latitude; destination1_longitude,destination1_latitude; destination2_longitude,destination2_latitude; . . . ; destinationx_longitude,destinationx_latitude;
نکته 🚧
ساختار ورود مختصات مجموعهای از نقاط به صورت polyline به شکل روبهرو است:
Polyline: polyline(ofp_Ik_vpAilAyu@te@g`E)
پارامترهای خروجی#
ردیف | پارامتر خروجی | توضیحات | جنس پارامتر |
---|---|---|---|
۱ | code | کد پاسخ که نشانگر ساختار اطلاعات ارسال شده یا پاسخ دریافتی است | string |
۲ | routes | جزئیات مسیر بهینه | object |
۳ | waypoints | نقاط ابتدایی و انتهایی مسیر | object |
۴ | routes.distance | مسافت کل – براساس متر | numeric |
۵ | routes.duration | زمان کل – براساس ثانیه | numeric |
۶ | routes.legs.steps | گامهای مسیر | object |
۷ | routes.legs.summary | خلاصه متن آدرس مسیر | text |
Swagger#
Postman#
فایل Postman این API را با کلیک روی گزینهی زیر دریافت کنید.