Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
리투아니아 A→B 이동 방법: 자동차·대중교통·자전거·도보, 교통량·요금·CO₂ 데이터 제공
Kuo važiuoti iš A į B Lietuvoje: automobilis, viešasis transportas, dviratis ar pėsčiomis. Laikas su spūstimis ir A juostomis, kaina su parkavimu, CO₂ – iš atvirų miestų duomenų.
라이프스타일TypeScript · JavaScriptGitHub @EismoPulsas온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Eismo Pulsas – kuo važiuoti iš A į B? Įrankis, padedantis išsirinkti geriausią būdą nukeliauti iš taško A į tašką B Lietuvoje: automobiliu, viešuoju transportu, Cyclocity dviračiu, paspirtuku, savo dviračiu ar pėsčiomis. Kiekvienam būdui parodomas laikas (su spūstimis ir A juostomis), kaina (degalai, parkavimas, bilietai) ir CO₂, o skiltis „Jei vietoj automobilio…“ – kiek pinigų, laiko ir CO₂ sutaupytumėte (ar prarastumėte) per kelionę ir per metus, ir kiek medžių tiek CO₂ sugertų. Naudojami valstybės ir miestų atviri duomenys bei pasirenkama TomTom eismo paslauga. Žemėlapis – tik Lietuva.README 전문 보기 ↗
Įrankis, padedantis išsirinkti geriausią būdą nukeliauti iš taško A į tašką B Lietuvoje: automobiliu, viešuoju transportu, Cyclocity dviračiu, paspirtuku, savo dviračiu ar pėsčiomis. Kiekvienam būdui parodomas laikas (su spūstimis ir A juostomis), kaina (degalai, parkavimas, bilietai) ir CO₂, o skiltis „Jei vietoj automobilio…“ – kiek pinigų, laiko ir CO₂ sutaupytumėte (ar prarastumėte) per kelionę ir per metus, ir kiek medžių tiek CO₂ sugertų.
Naudojami valstybės ir miestų atviri duomenys bei pasirenkama TomTom eismo paslauga. Žemėlapis – tik Lietuva.
?from=&to=)arrivalSidePreference: curbSide,
OSRM approaches=curb; vienos krypties gatvėse kairė pusė leidžiama, KET 142). Waze pasirenka savo maršrutą/profilis: automobilis (kuras, sąnaudos, kaina), elektromobilis (jungtys, AC/DC galia, baterija, JUDU leidimas), stovėjimo trukmė,
didžiausias ėjimas, bilietai, prioritetas – saugoma tik naršyklėje/apie – kaip skaičiuojame, visos formulės ir šaltiniai/apie-mus – kuo Eismo Pulsas skiriasi nuo navigacijos programėlių| Šaltinis | Kam naudojama |
|---|---|
| LTSA nacionalinis prieigos taškas (GTFS) | visų VT reisų tvarkaraščiai |
| stops.lt Šiaulių GTFS | Šiaulių miesto maršrutai (nacionaliniame rinkinyje jų nėra) |
| SĮ „Susisiekimo paslaugos“ – A juostos | Vilniaus A / A+ juostos |
| OpenStreetMap (Overpass) | autobusų juostos kituose miestuose |
| Via Lietuva – eismoinfo.lt | gyvas vidutinis greitis kelių jutikliuose (kas 15 min.) |
| TomTom Orbis Routing API | važiavimo maršrutas, trukmė su eismu, maršruto eismo sutrikimai |
| LHMT – Meteo.lt API | orų prognozės maršruto pradžioje, viduryje ir pabaigoje bei kelionės pradžioje; CC BY-SA 4.0 |
| Open-Meteo | lietaus tikimybė (Meteo.lt jos neskelbia); CC BY 4.0 |
| JUDU – rinkliavos zonos nuo 2025-07-01 | Vilniaus zonų kainos ir laikas (CC BY-NC 4.0) |
| Klaipėdos m. sav. – parkavimo zonos | parkavimo kainos ir laikas |
| JUDU – aikštelės, užimtumas (dabar ir istorija), gyventojų leidimų zonos, stovėjimas gatvėse, draudžiamos zonos | aikštelės, tikimybė rasti vietą, gatvės |
| UNIPARK aikštelių puslapiai, prekybos centrų svetainės |
Visas sąrašas su endpoint'ais, podėliu ir licencijomis: DUOMENYS.md. Visas parkavimo ir įkrovimo šaltinių sąrašas (ir netinkami) – docs/parkavimas-duomenys.md.
Bilietų kainos – lib/fares.ts (Vilnius – JUDU, Kaunas – kaunas.lt; kitų miestų ir tarpmiestinių – apytikslės, UI rodo „≈“).
Degalų kainos – LEA vidurkiai, vartotojas gali pasikeisti.
npm install
npm run dev
Atidaryti http://localhost:3000. Paruošti duomenys jau yra repozitorijoje (data/, public/data/).
Copy .env.example to .env.local and set TOMTOM_API_KEY to a server-side key for TomTom Orbis Routing v3. Restart the dev server. In Vercel, set the same server environment variable and redeploy. Never use a NEXT_PUBLIC_ key or commit .env.local.
Use TomTom's Start building account without enabling billing or a paid plan. Current pricing includes 20,000 routing requests per month without a credit card; check the account's quota before deployment. The provider enforces that free account limit; HTTP 429 switches the app to its labelled fallback. The app cannot prevent charges if an operator supplies a key belonging to a paid account.
Routing refreshes on trip/time changes, on a chosen parking change, or through Atnaujinti eismą. There is no routing polling. One initial comparison makes one provider routing call; a different selected parking endpoint makes one additional call. Other parking candidates are not routed in bulk. Concurrent identical requests share in-flight work; completed traffic routes are not cached. Meteo public place data is cached for 24 hours and forecasts for 30 minutes. Via Lietuva readings older than 30 minutes, future readings, invalid speeds and wrong-direction sensors are excluded.
TomTom's duration already includes traffic: no city multiplier, sensor delay or guessed weather penalty is added. Closures, roadworks and incidents are considered where the provider has coverage, not guaranteed for every road. A confirmed no-route response stays unavailable instead of falling back through a closure. Future trips use departure-time prediction, not a claim of live measurements. The OSRM fallback is approximate and cannot reliably account for current closures or roadworks.
Atidaryti Waze opens a Live Map route permalink with both car-leg endpoints prefilled (from=ll.lat,lng&to=ll.lat,lng). Waze calculates and displays its own route, which may differ from the app's route. Naviguoti nuo mano vietos keeps the official native-app deep link with ll, navigate=yes and utm_source; native navigation starts from the driver's GPS location, not a custom planned origin. Live Map's permalink parameters were verified in its browser UI; they are not custom-origin parameters for the native deep-link API. A verified navigationPos is preferred over parking coordinates when present. CarLeg, /api/drive and CarDriveDetails can also serve a later hybrid planner; generating complete hybrid trips is outside this change.
npm test
npm run typecheck
npm run lint
npm run build
Tests use deterministic provider/sensor/weather fixtures, including quota/authentication/timeouts, confirmed no-route, DST transitions, stale sensors and selected-parking ETA/geometry/fuel/CO₂/Waze consistency. Before release with a real key, compare TomTom estimates against observed driving times for city peak/off-peak, a motorway trip and an alternate parking endpoint. Verify Waze handoff on Android and iOS, both with and without Waze installed. These real-provider and physical-device checks require the deployment key/devices; fixture tests do not establish real-world ETA accuracy.
npm run data # viskas
npm run data -- transit # tik dalis: transit | lanes | parking | street | scooters | chargers | border | addresses | places
Tvarkaraščiai galioja 6 savaites nuo paruošimo dienos (vėlesnei datai imama ta pati savaitės diena), todėl
npm run data -- transit verta paleisti bent kartą per mėnesį, addresses ir places – kas kelis mėnesius (adresų registras atnaujinamas kas mėnesį). Atsisiuntimai talpinami .cache/.
lib/server/scooters.ts skaito bet kurį GBFS srautą. Aplinkos kintamieji (Vercel → Settings → Environment Variables):
| Kintamasis | Reikšmė |
|---|---|
SCOOTER_GBFS_URL | operatoriaus free_bike_status (GBFS 2) arba vehicle_status (GBFS 3) adresas |
SCOOTER_GBFS_TOKEN | jei srautui reikia Bearer žetono (niekada nekelkite jo į kodą) |
SCOOTER_OPERATOR | pavadinimas žemėlapyje, pvz. Bolt |
SCOOTER_DEMO | 1 – rodyti demo net produkcijoje, 0 – niekur nerodyti |
Be SCOOTER_GBFS_URL demo duomenys (išgalvoti paspirtukai prie tikrų gatvių) rodomi tik npm run dev ir Vercel
preview aplinkose – produkcijoje jų nėra, nebent SCOOTER_DEMO=1. Visur jie pažymėti „DEMO“.
GET /api/plan?from=54.7329,25.2236&to=54.6812,25.2876[&depart=2026-10-12T08:00]
GET /api/drive?from=54.7329,25.2236&to=54.6800,25.2800[&depart=2026-10-12T05:02:00Z]
GET /api/traffic
GET /api/bikeshare
GET /api/walk?from=54.6830,25.2850&to=54.6812,25.2876
GET /api/scooters?bbox=54.66,25.24,54.70,25.32
GET /api/geocode?q=Gedimino pr. 9, Vilnius[&near=54.68,25.28]
GET /api/parking[?chargers=1]
GET /api/hybrid?from=54.7329,25.2236&to=54.6812,25.2876&depart=2026-10-12T05:00:00Z&car=1320&stay=9[&ev=1&conn=T2,CCS][&prio=cheap][&modes=transit,bikeshare,scooter]
/api/hybrid – vietos palikti automobilį pakeliui ir tolesnė kelionė (iki 5 variantų, ne daugiau kaip 2 kiekvienam būdui). Važiavimas iki jų –
vienas OSRM table užklausimas, padaugintas iš TomTom A → B laiko santykio (car), todėl TomTom kvota nenaudojama; kainas ir galutinį
reitingą skaičiuoja naršyklė (summarizeHybrids). /api/drive?curb=1 – atvykti iš stovėjimo vietų pusės. OSRM atsakymai talpinami 10 min.,
o serveriams neatsakant jie 30 s neklausiami (deriniai tada naudoja tiesios linijos vertinimą).
/api/plan priima ir walk=10 (didžiausias ėjimas nuo automobilio, min.) ir grąžina car.parkingOptions; kainas pagal profilį skaičiuoja naršyklė.
/api/parking – gyvos laisvos vietos JUDU aikštelėse ir (su chargers=1) įkrovimo vietų būsena.
/api/plan departure is the door departure; it includes a 2-minute access assumption before driving. /api/drive departure is the start of the driving leg itself. Both accept Lithuanian local time or ISO time with an explicit offset and return ISO instants. Nonexistent spring DST times are rejected; ambiguous autumn local times use the earlier occurrence (send an explicit offset to choose the later one). /api/drive returns a CarLeg; optional parkingFor=lat,lng&walk=10 adds parking options around the final destination evaluated at the new driving arrival. Route responses use Cache-Control: no-store. The key and raw provider errors are never returned to the browser.
app/page.tsx → components/planner/Planner.tsx – paieška, rezultatai, nustatymaicomponents/planner/MapView.tsx – Leaflet žemėlapis (maršrutai, A juostos, eismas, parkavimas, Lietuvos kaukė)components/planner/Results.tsx, Savings.tsx, SettingsPanel.tsx – kortelės, VT laiko juosta, sutaupymaslib/metrics.ts – kaina, CO₂, kalorijos, reitingas, sutaupymas (skaičiuojama naršyklėje)lib/fares.ts – bilietų kainoslib/server/transit.ts – RAPTOR maršrutizatorius per data/transit.json.gzlib/server/traffic.ts – eismoinfo.lt jutikliai ir piko valandų vertinimaslib/server/driving.ts, tomtom.ts, weather.ts – car-leg orchestration, traffic provider and weather alertslib/departure.ts, driving.ts – Lithuanian time conversion, car-leg projection and Waze linkslib/server/osrm.ts, lanes.ts – gatvių maršrutai, A juostoslib/server/parking.ts – parkavimo vietos prie B (zonos, gatvės, aikštelės, įkrovimas) ir hubsAround – kur palikti automobilį pakeliui; live-parking.ts – gyvi JUDU ir įkrovimo duomenyslib/server/hybrid.ts, app/api/hybrid – deriniai su automobiliu; useHybrids.ts – jų užklausacomponents/planner/stages.ts – bet kurio būdo etapai (su Waze / Google Maps nuorodomis); Options.tsx – kortelės ir derinių karuselė;
TripDetails.tsx – pasirinkto būdo etapai ir kaina; TravelModes.tsx – „Kuo keliausite?“lib/stay.ts, components/planner/habits.ts – kiek stovės automobilis (vieta, laikas, įpročiai naršyklėje)lib/server/micromobility.ts – Cyclocity GBFS ir paspirtuko maršrutaslib/server/scooters.ts – paspirtukų srautas (GBFS arba DEMO)components/planner/BottomSheet.tsx – tempiamas rezultatų skydelis telefonecomponents/planner/ParkingCard.tsx – aikštelės / gatvės / įkroviklio kortelė su užimtumo grafiku; parking-meta.ts – spalvos ir klasėsapp/profilis/page.tsx → components/profile/ProfileView.tsx – profilis; components/planner/settings.ts – jo saugojimas naršyklėjegit checkout main && git pullgit checkout -b feature/tavo-uzduotis| privačių aikštelių kainos |
| OpenStreetMap (Overpass) | kitos aikštelės, stovėjimas gatvėse |
| Via Lietuva – įkrovimo prieigos (OCPI) | elektromobilių įkrovimas, gyva būsena (CC BY 4.0) |
| Valhalla (FOSSGIS) | dviračio, paspirtuko ir pėsčiųjų maršrutai |
| OSRM (FOSSGIS) | ėjimas iki stotelių ir tarp jų; atsarginiai dviračio, pėsčiųjų ir automobilio maršrutai |
| Registrų centras – adresų registras | adresų paieška rašant (per /api/geocode): visos gyvenvietės, gatvės ir pastatų adresai, ieškoma serveryje |
| OpenStreetMap (Overpass) | paieškai – rajonai, prekybos centrai, mokyklos, stotys ir kitos vietos |
| Photon (komoot) | kitų vietų pavadinimai, kai registras nieko neranda (≤ 1,8 s) |
| geoBoundaries (OSM) | Lietuvos siena žemėlapio kaukei |
| Cyclocity Vilnius (GBFS) | dviračių nuomos stotelės ir laisvi dviračiai, gyvai |
| OpenFreeMap | vektorinis žemėlapio pagrindas (MapLibre) |
app/api/* – plan, drive, traffic, bikeshare, scooters, geocode, parkingscripts/build-data.mjs – duomenų paruošimas; scripts/build-parking.mjs – parkavimas ir įkrovimas; data/curated-parking.json – prekybos centrai