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. |
dir | direct (ნაგულისხმევი) ან 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). ქვემოთ მოცემული ნებისმიერი ველი გადაფარავს მოდელს. |
rows | Seat rows, 8-20. |
layout | ადგილების განლაგება: 2+2, 2+1 ან 1+2 (გასასვლელის მარცხნივ+მარჯვნივ). |
door_side | right (კონტინენტური ევროპა) ან left. |
windshield | large ან normal — რამდენ მზეს იღებენ პირველი რიგები საქარე მინიდან. |
rear_window | none, small ან large — მზე ბოლო რიგებზე. |
window_height | standard ან panoramic (მაღალი გვერდითი ფანჯრები). |
deck | single, upper ან lower (ორსართულიანი ავტობუსები). |
mid_door | 1 ან 0 — არის შუა კარი (იქ ადგილები ამოიღება). |
timeline | 0 = დროის ხაზი არ შევა (15-წუთიანი სტრიქონები). |
track | 0 = დროიანი ტრეკის წერტილები არ შევა. |
weather | 1 (ნაგულისხმევი) ან 0. 1-ით გამოიყენება ამინდის პროგნოზი მგზავრობის გასწვრივ, როცა მგზავრობა მომდევნო 3 დღეშია (72 h); შემდგომი მგზავრობები და weather=0 იყენებს მოწმენდილ ცას. |
animation | 1 (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.tz | Travel date and the time zone of the times in the answer. |
data.route | id, num, from, to, dir, dep, arr, km (registry route) — or the stops you sent (POST). |
data.basis | How the timed path was built: timetable (registry or your stop times), router (our road route between points) or geometry (your polyline). |
data.bus | The bus profile used: model, layout, rows, door_side, windshield, rear_window, window_height, deck, mid_door. |
data.summary | trip_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.recommend | shade_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_clear | The same recommendation for a clear sky (no weather). |
data.weather_changes_answer | true when the forecast changes the shade side compared with recommend_clear. |
data.weather | used, 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.zones | front / middle / back: left and right sun exposure 0-100 and rows [first, last] of that part. |
data.seats | layout, 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.input | POST only: how your route was read — source, timed_by, stops, points, legs_routed, legs_straight, timezone. |
data.images | POST 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_html | POST 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.stops | 2-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_precision | 5 (ნაგულისხმევი) ან 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-დან (ნაგულისხმევად სამივე); [] = არცერთი. |
format | png (ნაგულისხმევი), webp ან jpg: თითოეული სურათის URL-ის ფაილის ტიპი. svg: PNG ფაილები, ხოლო ადგილების სქემა ასევე ბრუნდება ჩაშენებული SVG-ის სახით (seat_map.svg). |
theme | light (default) or dark. |
lang | სურათების წარწერებისა და ტექსტების ენა, 25 ენა (ნაგულისხმევად en). |
width | სურათის სიგანე px-ში, 240-1600 (ნაგულისხმევად: ბუნებრივი ზომა). |
embed_html | true (ნაგულისხმევი) = დააბრუნოს embed_html-იც; false = null. |
timeline / track | false = ეს სია პასუხში არ შევა. |
weather | true (ნაგულისხმევი) ან 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 ივნისი).



Bus catalogue
bus_model იღებს ამ ზოგადი სატრანსპორტო კლასებიდან ერთ-ერთს (არა კონკრეტულ მარკებს). ავტობუსის ნებისმიერი გაგზავნილი ველი გადაფარავს მოდელს; seats გარდაიქმნება rows-ად layout-ის მიხედვით. იგივე სია ხელმისაწვდომია JSON-ად bus-sun-catalog-იდან.
| bus_model | layout | rows | door_side | windshield | rear_window | window_height | deck | mid_door | typical_seats |
|---|---|---|---|---|---|---|---|---|---|
standard_coachStandard touring coach (12-13 m, 2+2) |
2+2 | 13 | right | large | small | standard | single | true | 49-53 |
panoramic_coachCoach with panoramic (tall) side windows, 2+2 |
2+2 | 13 | right | large | small | panoramic | single | true | 49-53 |
midi_coachMidi coach (9-10 m, 2+2) |
2+2 | 9 | right | large | small | standard | single | false | 33-37 |
comfort_coach_2_1Comfort coach with 2+1 seating |
2+1 | 12 | right | large | small | standard | single | true | 33-36 |
minibusMinibus (7-8 m, 2+1) |
2+1 | 6 | right | normal | large | standard | single | false | 16-20 |
double_deck_upperDouble-deck coach, upper deck |
2+2 | 15 | right | large | small | panoramic | upper | false | 56-64 on the upper deck |
double_deck_lowerDouble-deck coach, lower deck |
2+2 | 5 | right | normal | none | standard | lower | true | 12-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, ასევე POST "images": []-ით, ითვლება მძიმე კლასის 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"
განახლდა