Նորությունների ուղարկումը և NakBus նավատորմը այժմ գործընկերոջ վահանակում են
Nakordoni Partners վահանակ մուտք գործելու համար օգտագործեք նույն մուտքանունը (էլ. փոստ և գաղտնաբառ), ինչ ձեր մշակողի հաշվի համար, և այնտեղ կառավարեք նորությունները և ձեր ավտոբուսային պարկը (NakDriver / NakManager)՝ թիմային դերերով։ Ձեր API բանալիները, վերջնակետերը և հավելվածները մնում են անփոփոխ, իսկ այստեղի էջերը շարունակում են աշխատել։ Բացել Nakordoni Partners-ը

← Բոլոր endpoint-ները

Bus Sun Side API Online

Ավտոբուսի որ կողմն է ուղևորության ընթացքում ստանում արև կամ ստվեր, և որ նստատեղերն են լավագույնը ստվերի կամ տեսարանի համար։ Ուղևորությունն անցնում է 5 րոպեանոց քայլերով՝ դիրքը և ուղղությունը երթուղուց, արևի դիրքն այդ վայրում և ժամին, ապա գնահատում յուրաքանչյուր նստատեղի համար՝ ըստ ընտրված ավտոբուսի դասավորության։ Օգտագործեք երթուղի մեր լիցենզավորված գծերի ռեեստրից (route_id), երկու կետ (from/to) կամ POST-ով ուղարկեք ձեր սեփական երթուղին (կանգառներ կամ polyline)՝ նաև նստատեղերի սխեմա, երթուղու քարտեզ և ժամանակագիծ պատկերներով ստանալու համար։ Արդյունքները գնահատում են՝ հիմնված երկրաչափության և արևի դիրքի վրա. իրական ստվերը կախված է նաև վարագույրներից, շենքերից, ռելիեֆից և եղանակից։

GET https://nakordoni.eu/api/v2/data/bus-sun-side — քվոտայի դաս: heavy

ՊարամետրՆկարագրություն
route_idԵրթուղու id մեր ավտոբուսային երթուղիների ռեեստրից (նույն id-ները, ինչ nakordoni.eu-ի ավտոբուսային էջերում)։ Օգտագործեք route_id կամ from+to։
dirdirect (լռելյայն) կամ return։
dateՈւղևորության ամսաթիվ YYYY-MM-DD (լռելյայն այսօր)։ Արևի դիրքը կախված է ամսաթվից։
depՄեկնման ժամ HH:MM՝ երթուղու տեղական ժամով (լռելյայն՝ ռեեստրի չվացուցակը)։
fromԱզատ երթուղի՝ մեկնակետ lat,lon (to-ի հետ միասին)։
toԱզատ երթուղի՝ վերջնակետ lat,lon (from-ի հետ միասին)։
departԱզատ երթուղի՝ մեկնում YYYY-MM-DDTHH:MM, մեկնակետի տեղական ժամ։
langՏեղանունների և տեքստերի լեզուն, 25 լեզու (en, uk, pl, de, …)։ Լռելյայն en։
bus_modelԱվտոբուսի մոդելի id bus-sun-catalog-ից (լռելյայն standard_coach)։ Ստորև ցանկացած դաշտ վերագրում է մոդելը։
rowsSeat rows, 8-20.
layoutՆստատեղերի դասավորություն՝ 2+2, 2+1 կամ 1+2 (միջանցքից ձախ+աջ)։
door_sideright (մայրցամաքային Եվրոպա) կամ left։
windshieldlarge կամ normal — որքան արև են ստանում առաջին շարքերը դիմապակու միջով։
rear_windownone, small կամ large — արև վերջին շարքերում։
window_heightstandard կամ panoramic (բարձր կողային պատուհաններ)։
decksingle, upper կամ lower (երկհարկանի ավտոբուսներ)։
mid_door1 կամ 0 — կա միջին դուռ (այնտեղի նստատեղերը հանվում են)։
timeline0 = ժամանակագիծը չի ներառվում (15 րոպեանոց տողեր)։
track0 = ժամանշված հետագծի կետերը չեն ներառվում։
weather1 (լռելյայն) կամ 0։ 1-ով օգտագործվում է եղանակի կանխատեսում ուղևորության երկայնքով, երբ ուղևորությունն առաջիկա 3 օրվա ընթացքում է (72 h). հետագա ուղևորությունները և weather=0-ն օգտագործում են պարզ երկինք։
animation1 (default) or 0. With 0, the animation block (sun and coach position every 5 minutes) is left out. POST body: animation true|false.

Պատասխանի դաշտերը — պատասխանի ծրարի data օբյեկտի ներսում։ []-ը ցույց է տալիս ցուցակ, ուստի data.items[].name-ը յուրաքանչյուր տարրի name դաշտն է։ Դաշտը լինում է null, բացակայում է կամ դատարկ ցուցակ է, երբ արժեք չունենք․ լցոնող արժեք երբեք չենք դնում։

ԴաշտՆկարագրություն
data.date / data.tzTravel date and the time zone of the times in the answer.
data.routeid, num, from, to, dir, dep, arr, km (registry route) — or the stops you sent (POST).
data.basisHow the timed path was built: timetable (registry or your stop times), router (our road route between points) or geometry (your polyline).
data.busThe bus profile used: model, layout, rows, door_side, windshield, rear_window, window_height, deck, mid_door.
data.summarytrip_min, daylight_min, night_min and minutes with the sun on the left, right, ahead and behind (weather-weighted when a forecast was used).
data.recommendshade_side, sun_side, shade_pct, best_shade_seats[], best_sun_seats[], confidence (high | medium | low), reason_key; tip_key hot_sun_side when the sunny side is forecast at 28 °C or more. reason_key mostly_cloudy (shade_side any) when the forecast is mostly cloud or rain.
data.recommend_clearThe same recommendation for a clear sky (no weather).
data.weather_changes_answertrue when the forecast changes the shade side compared with recommend_clear.
data.weatherused, window_h (72), covered_pct, sunny_min, cloudy_min, rain_min, max_temp, note_key (forecast_used | partly_forecast | mostly_cloudy | rain_expected | clear_sky_only).
data.zonesfront / middle / back: left and right sun exposure 0-100 and rows [first, last] of that part.
data.seatslayout, rows, cols[], grid[][]: every seat — id (e.g. 4C), side, pos (window | aisle), exp (sun exposure 0-100), door (true next to a door).
data.timeline[]One row per 15 min: t, lat, lon, hd (heading), az / el (sun azimuth / elevation), side (left | right | ahead | behind | none), w (sun strength); wx {code, f, temp, precip} when a forecast was used.
data.track[]Track points [lat, lon, sun side] for drawing the route (leave out with track=0).
data.inputPOST only: how your route was read — source, timed_by, stops, points, legs_routed, legs_straight, timezone.
data.imagesPOST only: seat_map, route_map, timeline — each {url, format, expires_at}; url = https://api.nakordoni.dev/images/<random name>.<png | webp | jpg> (body format, default png). Files are kept 12 hours. format svg: PNG files plus the seat map as inline SVG (seat_map.svg).
data.embed_htmlPOST only: a self-contained HTML figure with the seat map (inline SVG) to paste into a page; null with embed_html=false.

Փորձեք առանց կոդի․ արևոտ կողմի պլանավորողը գործարկում է այս API-ն ցանկացած երթուղու կամ ձեր ուղևորության համար և ցույց է տալիս նստատեղերի սխեման, քարտեզը, ժամանակագրությունը, պատկերները և կանչի կոդը։ Բացել պլանավորողը →

Your route (POST)

Ուղարկեք ձեր սեփական երթուղին որպես JSON մարմին POST-ով նույն URL-ին։ Պատասխանն ունի նույն դաշտերը, ինչ GET-ը, գումարած input (ինչպես է կարդացվել երթուղին), images (նստատեղերի սխեմա, երթուղու քարտեզ և ժամանակագիծ) և embed_html։

Առանց երկրաչափության կանգառները միացվում են մեր ճանապարհային երթուղավորիչով. հատվածը, որը հնարավոր չէ երթուղավորել, գծվում է որպես ուղիղ գիծ և հաշվվում input.legs_straight-ում։ Ժամեր՝ առնվազն երկու կանգառ ժամով, կամ route.depart՝ route.duration_min-ի կամ route.speed_kmh-ի հետ։ Ուղևորությունը կարող է տևել մինչև 72 h։

Body fieldՆկարագրություն
route.stops2-200 կանգառ ըստ հերթականության՝ {lat, lon, name?, arr?, dep?, day?}։ arr / dep-ը տեղական ժամ է HH:MM. day = օրեր route.date-ից հետո (կեսգիշերն անցնող ժամերն ինքնաբերաբար տեղափոխվում են)։
route.geometryՁեր ուղին՝ GeoJSON LineString, MultiLineString, Feature կամ FeatureCollection ([lon, lat] հերթականություն) կամ կոդավորված polyline տող։ Մինչև 5000 կետ։ stops-ի հետ կանգառները տալիս են ժամերը, իսկ երկրաչափությունը՝ ուղին։
route.polyline_precision5 (լռելյայն) կամ 6՝ կոդավորված polyline-ի համար։
route.dateԱռաջին կանգառի ժամի YYYY-MM-DD (լռելյայն այսօր)։
route.departՄեկնում YYYY-MM-DDTHH:MM, երբ կանգառները ժամեր չունեն կամ ուղարկում եք միայն երկրաչափություն։
route.duration_minՈւղևորության տևողությունը րոպեներով, depart-ի հետ միասին (հակառակ դեպքում ժամանակը հաշվվում է speed_kmh-ից)։
route.speed_kmhՄիջին արագությունը depart-ի հետ միասին, լռելյայն 65։
route.timezoneՁեր ուղարկած ժամերի IANA ժամային գոտին (լռելյայն՝ առաջին կետի երկրի գոտին)։
busԱվտոբուսը՝ bus_model կատալոգից և/կամ seats, rows, layout, door_side, windshield, rear_window, window_height, deck, mid_door — նույն դաշտերը, ինչ GET պարամետրերը։ Լռելյայն standard_coach։
imagesՈր պատկերները ստեղծել՝ seat_map, route_map, timeline-ից ցանկացածը (լռելյայն բոլոր երեքը). [] = ոչ մեկը։
formatpng (լռելյայն), webp կամ jpg՝ յուրաքանչյուր պատկերի URL-ի ֆայլի տեսակը։ svg՝ PNG ֆայլեր, իսկ նստատեղերի սխեման վերադարձվում է նաև ներկառուցված SVG-ով (seat_map.svg)։
themelight (default) or dark.
langՊատկերների պիտակների և տեքստերի լեզուն, 25 լեզու (լռելյայն en)։
widthՊատկերի լայնությունը px-ով, 240-1600 (լռելյայն՝ բնական չափը)։
embed_htmltrue (լռելյայն) = վերադարձնել նաև embed_html. false = null։
timeline / trackfalse = այդ ցանկը չի ներառվում պատասխանում։
weathertrue (լռելյայն) կամ false՝ օգտագործել եղանակի կանխատեսումը ուղևորության երկայնքով (առաջիկա 3 օր). false = միայն պարզ երկինք։ Ընդունվում են նաև 1 և 0։

Սխալ կամ բացակայող դաշտը տալիս է HTTP 400, որտեղ error.field-ը պարունակում է դրա ուղին, օրինակ՝ route.stops[2].lat կամ bus.seats։

curl -X POST "https://nakordoni.eu/api/v2/data/bus-sun-side" \
  -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "route": {
        "stops": [
            {
                "name": "Poznań Dworzec Autobusowy",
                "lat": 52.4011,
                "lon": 16.911,
                "dep": "08:00"
            },
            {
                "name": "Konin",
                "lat": 52.223,
                "lon": 18.2511,
                "arr": "09:20",
                "dep": "09:25"
            },
            {
                "name": "Łódź Kaliska",
                "lat": 51.7573,
                "lon": 19.4306,
                "arr": "10:55",
                "dep": "11:05"
            },
            {
                "name": "Warszawa Zachodnia",
                "lat": 52.219,
                "lon": 20.965,
                "arr": "13:10"
            }
        ],
        "date": "2026-06-21",
        "timezone": "Europe/Warsaw"
    },
    "bus": {
        "bus_model": "minibus"
    },
    "images": [
        "seat_map",
        "route_map",
        "timeline"
    ],
    "format": "png",
    "theme": "light",
    "lang": "en",
    "weather": true
}'
const res = await fetch('https://nakordoni.eu/api/v2/data/bus-sun-side', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer NKD-DEV-XXXX-XXXX-XXXX', 'Content-Type': 'application/json' },
  body: JSON.stringify({
    route: { stops: [
      { name: 'Poznań', lat: 52.4011, lon: 16.911, dep: '08:00' },
      { name: 'Warszawa', lat: 52.219, lon: 20.965, arr: '11:30' } ],
      date: '2026-06-21', timezone: 'Europe/Warsaw' },
    bus: { bus_model: 'comfort_coach_2_1' },
    images: ['seat_map'], format: 'svg', lang: 'pl'
  })
});
const { data } = await res.json();
console.log(data.recommend.shade_side, data.recommend.best_shade_seats);
document.querySelector('#seats').innerHTML = data.embed_html;   // or <img src="data.images.seat_map.url">

Images and embed_html

Յուրաքանչյուր պատկեր ունի իր URL-ը՝ պատահական ֆայլի անունով (.png, .webp կամ .jpg)։ URL-ները բանալի չեն պահանջում և վավեր են 12 ժամ (expires_at). պատճենեք ֆայլերը, եթե դրանք ավելի երկար են պետք։ embed_html-ը ինքնուրույն figure է՝ նստատեղերի սխեմայով որպես ներկառուցված SVG և nakordoni.eu աղբյուրի տողով. ցուցադրելիս պահպանեք աղբյուրի նշումը։

Ստորև՝ վերևի օրինակային մարմնի պատկերները (միկրոավտոբուս, Պոզնան – Վարշավա, հունիսի 21)։

Նստատեղերի սխեմա՝ ստվեր և արև յուրաքանչյուր նստատեղի համար
seat_map
Երթուղու քարտեզ՝ գունավորված ըստ արևի կողմի
route_map
Ժամանակագիծ՝ երբ է արևը որ կողմում
timeline

Bus catalogue

bus_model-ն ընդունում է այս ընդհանուր տրանսպորտային դասերից մեկը (ոչ կոնկրետ մակնիշներ)։ Ավտոբուսի ցանկացած ուղարկված դաշտ վերագրում է մոդելը. seats-ը վերածվում է rows-ի ըստ layout-ի։ Նույն ցանկը հասանելի է JSON-ով bus-sun-catalog-ից։

bus_modellayoutrowsdoor_sidewindshieldrear_windowwindow_heightdeckmid_doortypical_seats
standard_coach
Standard touring coach (12-13 m, 2+2)
2+213rightlargesmallstandardsingletrue49-53
panoramic_coach
Coach with panoramic (tall) side windows, 2+2
2+213rightlargesmallpanoramicsingletrue49-53
midi_coach
Midi coach (9-10 m, 2+2)
2+29rightlargesmallstandardsinglefalse33-37
comfort_coach_2_1
Comfort coach with 2+1 seating
2+112rightlargesmallstandardsingletrue33-36
minibus
Minibus (7-8 m, 2+1)
2+16rightnormallargestandardsinglefalse16-20
double_deck_upper
Double-deck coach, upper deck
2+215rightlargesmallpanoramicupperfalse56-64 on the upper deck
double_deck_lower
Double-deck coach, lower deck
2+25rightnormalnonestandardlowertrue12-20 on the lower deck

Allowed values: layout 2+2 | 2+1 | 1+2 · rows {"min":4,"max":20,"custom_min":8} · door_side right | left · windshield large | normal · rear_window none | small | large · window_height standard | panoramic · deck single | upper | lower · mid_door true | false

Weather

weather=1-ով (լռելյայն. POST մարմնում "weather": true) պատասխանն օգտագործում է եղանակի ժամային կանխատեսում ուղևորության երկայնքով առաջիկա 3 օրվա համար (72 h). ուղևորության հետագա մասերի համար ընդունվում է պարզ երկինք։ summary.sun_*_min-ն այդ դեպքում կշռվում են ըստ կանխատեսման, timeline-ի յուրաքանչյուր տող ստանում է wx {code, f, temp, precip}, իսկ weather {used, window_h, covered_pct, sunny_min, cloudy_min, rain_min, max_temp, note_key}-ը ցույց է տալիս, թե ուղևորության որ մասն է ծածկել կանխատեսումը։ recommend_clear-ը պարզ երկնքի պատասխանն է. weather_changes_answer-ը true է, երբ կանխատեսումը փոխում է ստվերի կողմը։ Երբ կանխատեսումը հիմնականում ամպամած կամ անձրևային է, recommend.reason_key-ը mostly_cloudy է, իսկ shade_side-ը՝ any։ recommend.tip_key hot_sun_side նշանակում է, որ արևոտ կողմում կանխատեսվում է 28 °C կամ ավելի։

Quota and accuracy

GET-ը, ինչպես նաև "images": []-ով POST-ը, հաշվվում են որպես ծանր դասի 1 միավոր. պատկերներ ստեղծող POST-ը հաշվվում է 2։ bus-sun-catalog-ը էժան կանչ է։ Նույն POST մարմինը վերադարձնում է պահված պատասխանը մինչև 6 ժամ (1 ժամ, եթե օգտագործվել է եղանակի կանխատեսում)։

Արդյունքը գնահատում է՝ հիմնված երթուղու երկրաչափության և արևի դիրքի վրա։ Վարագույրները, մգեցված ապակիները, շենքերը, ծառերը, ռելիեֆը և փոփոխված երթուղին մեզ հայտնի չեն։ Ամպերն ու անձրևը գալիս են եղանակի կանխատեսումից միայն առաջիկա 3 օրվա ուղևորությունների համար. հետագա ուղևորությունների համար ենթադրվում է պարզ երկինք։ confidence-ը ցածր է, երբ արևը ցածր է, ուղևորությունը կարճ է, երթուղին հաճախ է թեքվում կամ կանխատեսումը հիմնականում ամպամած է։

curl "https://nakordoni.eu/api/v2/data/bus-sun-side?route_id=521&dir=direct&date=2026-06-21&bus_model=standard_coach&lang=en" \
  -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
🔑 Մուտք գործեք որպես մշակող՝ այս endpoint-ը sandbox-ում կենդանի փորձելու համար. օրական 10 անվճար թեստային հարցում յուրաքանչյուր արտադրանքի համար։ Մուտք

Թարմացվել է