مسیریابی
مسیر خودرو، پیاده و دوچرخه با دستورهای فارسی، نقاط میانی، مسیر جایگزین و پرهیز از عوارضی و آزادراه.
درخواست
GET /v1/route مسیر خودرو، پیاده یا دوچرخه را با دستورهای گام به گام فارسی میدهد. دسترسی maps:routing، سرویس maps.route، یک واحد برای هر درخواست (هر تعداد نقطه یا مسیر جایگزین).
مسیریابی
curl -sS "https://maps.namayek.com/v1/route?coordinates=51.41,35.757;51.338,35.6997&profile=car&alternatives=1&exclude=toll" \ -H "X-Namayek-Key: $NAMAYEK_SECRET_KEY"// پیشنهاد خودکار نزدیک مرکز نقشهconst { items } = await map.autocomplete("میدان آزادی", { limit: 5 }); // مسیر خودرو با دستورهای فارسیconst route = await map.route([51.338, 35.6997], [51.41, 35.757], { profile: "car" });map.showRoute(route); // خط مسیر زیر برچسبها و قاببندی خودکارfor (const step of route.routes[0].legs[0].steps) console.log(step.instruction, step.distanceText);پارامترها
| پارامتر | نوع | لزوم | پیشفرض | توضیح |
|---|---|---|---|---|
coordinates | lng,lat;lng,lat;… | یا from و to | — | ۲ نقطه تا سقف نقطههای مسیر (پیشفرض ۲۵). |
from / to | lng,lat | یا coordinates | — | مبدا و مقصد (شکل کیت توسعه). |
via | lng,lat;… | اختیاری | — | نقطههای میانی؛ فقط همراه from و to. |
profile | car | foot | bike | اختیاری | تنظیم پروژه | خودرو، پیاده یا دوچرخه. |
alternatives | 0..3 | true | false | اختیاری | 0 | مسیر جایگزین (true یعنی ۱)؛ با بیش از ۲ نقطه نادیده گرفته میشود. |
steps | 0 | 1 | اختیاری | 1 | دستورهای گام به گام. |
stepGeometry | 0 | 1 | اختیاری | 0 | هندسه هر گام. |
geometry | geojson | polyline | polyline6 | اختیاری | geojson | قالب هندسه مسیر. |
overview | full | simplified | none | اختیاری | full | دقت هندسه کل مسیر؛ none یعنی بی هندسه. |
exclude | csv | اختیاری | — | toll، motorway، ferry (فقط car). |
radiuses | r;r;… | اختیاری | — | شعاع چسباندن هر نقطه به راه، ۱ تا ۱۰۰۰ متر. |
continueStraight | 0 | 1 | اختیاری | — | ادامه مستقیم در نقطههای میانی. |
lang / digits | fa | en / fa | latin | اختیاری | پروژه / بر پایه زبان | زبان و رقم دستورها و متن فاصله و زمان. |
key | string | یا سرآیند | — | فقط کلید عمومی nmk_pk_ در نشانی؛ روی سرور کلید را در سرآیند X-Namayek-Key بفرستید. |
پاسخ
| فیلد | نوع / مقدار | توضیح |
|---|---|---|
code | OK | NO_ROUTE | NO_ROUTE یعنی راهی نیست؛ routes خالی است (هزینه دارد چون مسیریاب کار کرد). |
routes[].distance / duration | number | متر و ثانیه با یک رقم اعشار. |
routes[].distanceText / durationText | string | متن آماده نمایش («۵٫۲ کیلومتر»، «۱۰ دقیقه»). |
routes[].summary | string | دو راه مهم مسیر با «، ». |
routes[].bbox | [w, s, e, n] | محدوده مسیر برای قاببندی نقشه. |
routes[].geometry | LineString | string | null | بر پایه geometry و overview. |
routes[].legs[].steps[] | RouteStep[] | گامها با instruction فارسی، maneuver و mode. |
waypoints[] | object[] | نقطههای چسبیده به راه با name و snapDistance. |
dataVersion | string | null | نسخه داده مسیریاب. |
{ "distance": 230.5, "duration": 31.2, "distanceText": "۲۳۰ متر", "durationText": "کمتر از یک دقیقه", "name": "ولیعصر", "ref": null, "mode": "driving", "instruction": "به راست بپیچید و وارد ولیعصر شوید", "maneuver": { "type": "turn", "modifier": "right", "location": [51.41, 35.757], "bearingBefore": 2, "bearingAfter": 92, "exit": null }}دستورهای فارسی
متن هر دستور را سرور از نوع مانور، جهت و نام راه میسازد (هرگز از متن خام موتور مسیریاب). W نام راه است؛ اگر راه نام نداشته باشد ستون دوم به کار میرود.
| نوع | با نام راه | بی نام راه |
|---|---|---|
depart | در W به سمت {جهت} حرکت کنید | به سمت {جهت} حرکت کنید |
arrive (آخرین بخش) | به مقصد رسیده اید + سمت | همان |
arrive (توقف میانی) | به توقف {i} رسیده اید + سمت | همان |
turn | {پیچ} و وارد W شوید؛ دور برگردان: دور بزنید و در W ادامه دهید | {پیچ} |
new name | در W ادامه دهید | مستقیم ادامه دهید |
continue | در W مستقیم ادامه دهید؛ کمی به {SIDE} ادامه دهید و در W بمانید | مستقیم ادامه دهید |
merge | از سمت {SIDE} وارد W شوید | از سمت {SIDE} به مسیر اصلی بپیوندید |
on ramp | برای رفتن به {dest}، وارد رمپ سمت {SIDE} شوید؛ یا: وارد رمپ W شوید | وارد رمپ سمت {SIDE} شوید |
off ramp | از خروجی {شماره} خارج شوید و وارد W شوید | از خروجی سمت {SIDE} خارج شوید |
fork | در دوراهی سمت {SIDE} را بگیرید و وارد W شوید | در دوراهی سمت {SIDE} را بگیرید |
end of road | در انتهای راه {پیچ} و وارد W شوید | در انتهای راه {پیچ} |
roundabout, rotary | وارد میدان {نام} شوید و از خروجی {ترتیبی} خارج شوید و وارد W شوید | بی « و وارد W شوید»؛ بی خروجی: وارد میدان شوید |
roundabout turn | در میدان {پیچ} و وارد W شوید | در میدان {پیچ} |
exit roundabout | از میدان خارج شوید و وارد W شوید | از میدان خارج شوید |
notification | در W ادامه دهید | مستقیم ادامه دهید |
use lane | در خط مناسب بمانید و {پیچ} | همان |
mode = ferry | با کشتی ادامه دهید | همان |
| modifier | عبارت |
|---|---|
uturn | دور بزنید |
sharp right | به تندی به راست بپیچید |
right | به راست بپیچید |
slight right | کمی به راست بپیچید |
straight | مستقیم بروید |
slight left | کمی به چپ بپیچید |
left | به چپ بپیچید |
sharp left | به تندی به چپ بپیچید |
| modifier | پسوند |
|---|---|
left / slight left / sharp left | ؛ مقصد در سمت چپ شماست |
right / slight right / sharp right | ؛ مقصد در سمت راست شماست |
straight | ؛ مقصد روبروی شماست |
| مقدار | متن |
|---|---|
| کمتر از 50 متر | کمتر از ۵۰ متر |
| کمتر از 1000 متر | گرد به ده متر: «۲۳۰ متر» |
| کمتر از 10 کیلومتر | یک رقم اعشار: «۲٫۴ کیلومتر» |
| بیشتر | عدد صحیح: «۱۵ کیلومتر» |
| زمان کمتر از 60 ثانیه | کمتر از یک دقیقه |
| زمان کمتر از یک ساعت | «۲۱ دقیقه» |
| زمان بیشتر | «۱ ساعت و ۲۰ دقیقه» |
با lang=en دستورها انگلیسی و با digits=latin رقمها لاتین میشوند.
قالب هندسه
geojson(پیشفرض): LineString با مختصات[lng, lat]؛ مستقیم به MapLibre یاmap.showRoute()بدهید.polylineوpolyline6: رشته فشرده Google با دقت ۵ یا ۶ رقم؛ برای ذخیره یا فرستادن به نقشه ایستا.overview=simplifiedهندسه سبکتر وnoneبی هندسه (فقط فاصله و زمان).
مسیر جایگزین و پرهیز
alternatives=1..3 مسیرهای جایگزین میدهد (فقط با دو نقطه). exclude=toll,motorway,ferry برای خودرو از عوارضی، آزادراه یا کشتی پرهیز میکند. مجموع فاصله مستقیم نقطهها نباید از سقف (پیشفرض ۲۵۰۰ کیلومتر) بیشتر شود.
خطاهای مسیر
| کد | HTTP | معنی و اقدام |
|---|---|---|
COORDINATES_INVALID | 400 | مختصات معتبر نیستترتیب lng,lat را بررسی کنید؛ عدد بی توان و حداکثر ۱۰ رقم اعشار.param, index |
TOO_MANY_COORDINATES | 400 | تعداد نقطه ها بیش از حد مجاز استتعداد نقطهها را تا سقف کم کنید.max |
ROUTE_TOO_LONG | 400 | فاصله نقطه ها بیش از حد مجاز استمسیر را به چند بخش کوتاهتر بشکنید.maxKm |
OUT_OF_COVERAGE | 422 | این نقطه بیرون از محدوده پوشش سرویس استنقطه را در محدوده داده (مثلا ایران) بفرستید.index |
POINT_NOT_ROUTABLE | 422 | نزدیک این نقطه راهی پیدا نشدنقطه را به نزدیکترین خیابان ببرید یا radiuses را بزرگتر کنید.index |
UPSTREAM_ERROR | 502 | سرویس با خطا پاسخ داد؛ دوباره تلاش کنیدیک بار دیگر بفرستید. |
آخرین بهروزرسانی: