尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
*(по-рано „GPX конструктор“; репото вече е cx-tracks, адресът -)* Приложение в браузъра, което сглобява нов маршрут от вече записани GPX тракове.檢視完整 README ↗
(по-рано „GPX конструктор“; репото вече е cx-tracks, адресът - https://cepreu5.github.io/cx-tracks/)
Приложение в браузъра, което сглобява нов маршрут от вече записани GPX тракове.
Добавяш няколко трака, приложението само намира дублиращите се участъци и слага на всеки маркер по средата му; числото в маркера казва колко застъпени участъка събира едно натискане (от 1.4). Клик върху маркера маха дубликата от маршрута и от картата - а ако на мястото лежат три и повече трака един върху друг, един клик маха всички освен един (от 1.3.1); "Отмени" връща всичко. Копчето "Изчисти преди сглобяване" в панела "Дубликати" (от 1.4) прави наведнъж това, което правят кликовете върху всички маркери, и свързва направо отворените дупки до 1000 м (от 1.9; преди - до 500 м) - пак една стъпка за "Отмени". Прозорец за потвърждение няма: решенията се виждат в панела "Дубликати" (свит по подразбиране), с редовете "Дубликати по картата: N маркера · X км", "Пропуснати дубликати: N участъка · X км" и "Отворени дупки: N · X м". Клик върху сегмент отваря малко меню до него: "Добави в маршрута" го слага като следваща част, "Изтрий участъка" го маха от картата, от трака и от маршрута; пръстенът (точката на разклонение) има свое меню със "Изтрий разклонението". Частите се редуват по цвят (тъмносин и оранжев), за да се вижда къде свършва едната и започва следващата. Готовият маршрут излиза като един цял .gpx файл, който се зарежда в часовник, OsmAnd, Komoot, Locus или GPS устройство.
Дефолтът вече може да е и цяла колекция .json, не само .gpx файл - отмята ли се „Запомни го като дефолт“ при внасяне на колекция, тя се връща пак, когато колекцията е празна.
.json файл се пази в браузъра със своите байтове и при празна колекция се разчита пак - с траковете, маршрутите и запазените картини..gpx..gpx, и .json, дефолтът пази всички тях и ги връща заедно.Дефолтът вече няма поле за име - носи името на файла, който си внесъл.
Изтриването вече пита в прозорец в самото приложение, вместо през въпроса на браузъра - затова работи и в инсталираното приложение на телефона.
Колекция, която искаш да е винаги под ръка, вече се запомня като дефолт - с една отметка в прозореца за внасяне - и се връща сама, когато екранът е празен. А панелът „Записани маршрути“ получи бутон „Изтрий“ за всички маршрути наведнъж.
Началният екран се подрежда като акордеони: „Запазена картина“, „Записани маршрути“, картата „Маршрут“ с числата и профила и дългите указания под тях се сгъват и разгъват с клик върху заглавието - по същия начин като „Части в маршрута“ и „Тракове-източници“, и както там браузърът помни кое е отворено.
„Посока“ и „Север“ вече въртят целия изглед „Картина“ - снимката, линиите, точките и кръгчето заедно, около центъра на екрана.
Следата при загасен екран вече върви по маршрута, вместо да пресича направо през завоите.
Числата върху частите на маршрута вече са квадратни - за да не се бъркат с кръглите числа върху дубликатите.
Един таван вместо три по 500 м. Досега самозатварянето, пръстенът на дупката ("Свържи направо", "Изчисти преди сглобяване") и връзката с "Добавяне" спираха на 500 м всеки поотделно, така че дупка от 855 м оставаше само за ръката. От 1.9 и трите стигат до 1000 м (Core.GAP_CEIL_M); по-дългото си остава за "Затвори с чертаене" и "Удължи/Скъси".
t.hj); до края на другото парче (40 м) двата края се свързват. Редът излиза само ако най-близката линия е до тавана; "Удължи/Скъси" остава под него за всичко останало. Свободният край не се свързва сам, а "Отмени" връща клика.Свободният край на трак вече се влачи с ръка - така се затварят и дупките над 500 м, които никой от досегашните инструменти не затваряше.
Core.openEnds). Затворен кръг няма свободен край и редът не излиза. Панелът "Тракове-източници" остава без меню.t.hj). Върху края на трак (до 40 м от него) - свързване: тракът расте до точно този край и двата стават една линия. На празно - нов край: новият връх става краят, а точката остава на него, за да продължиш. Назад по същия трак - скъсяване: върховете, през които минава, се махат (и заредените), а точката остава на новия край..gpx като всички други, затова таванът от 500 м не важи за ръката (той си остава за връзките с "Добавяне"). Начертаното се пази като такова (t.ext) - дългата права там не е дупка в записа и не става дубликат, когато пада върху друг трак. Изтритото, махнатото, връзките и частите на маршрутите следват новите разстояния; "Отмени" връща всяко пускане.Действията пипат колекцията: четирите режима - "Изрязване", "Добавяне", "Местене", "Махане" - работят върху траковете, а маршрутът се сглобява след тях. В колекцията не остава празно място: всяко махане оставя линията непрекъсната - мястото е покрито от друг трак или двата края се свързват. Изтрит дубликат не оставя празно място.
Core.dupStretch). Двата края на махнатото лягат върху оставащата линия: от края на трака до най-близкото място на другата линия се чертае продължение в цвета на трака (Core.skipEnds). След изтриване нищо не се свързва и не се чертае допълнително; "Отмени" връща всичко. Застъпванията без маркер се чистят както в 1.6 (до 1,5 пъти отклонението).joins при дупка в един трак, links между два трака) и пътува с колекцията; "Отмени" я маха. Без нито един трак "Добавяне" чертае маршрута направо, както досега; "Начертай" при дупка в маршрута също чертае в маршрута.Core.remapper). Клик в "Махане" върху самата връзка я маха и дупката е пак отворена..gpx като върхове в трака. .gpx на трак е една непрекъсната линия: без изтритото, с връзките през дупките и с връзката към съседния трак в началото или в края (Core.trackLine); в .gpx на маршрута връзките са върхове като всички останали.Чиста колекция: преди колекцията да се запише, нито един участък не носи повече от един трак. Трите условия за готова колекция - няма дублирани тракове, няма покрити един върху друг тракове, които не се отчитат като дубликати, и няма незатворени дупки (и след изчистване на дублиране) - се виждат в "Проверка за дубликати" и се изпълняват с "Изчисти преди сглобяване".
Синтетичен Б · 368–1 002 м), какво лежи отдолу и две копчета - "Затвори направо · под него остава трак" и "Затвори с чертане · маха и трака отдолу" (мястото се чертае наново, режимът става "Добавяне"), плюс "Отказ".Core.dupStretch), така че в участъка остава точно един трак и по една точка на разклоняване в краищата му. Махнатото е пак в skips; "Отмени" връща всичко. Второто копче на участъка, "Изтрий и трака под него", остава за случая, в който под участъка лежи друг трак.joins в трака и в колекцията) - след махнат дубликат, махнато разклонение и изтрит участък до прага от "Настройки" (100 м по подразбиране), а при "Изчисти преди сглобяване" до 500 м. Махнат дубликат не е дупка: отдолу стои копието, което остава. Пресичащ трак не покрива дупка..gpx на трака (orig) и в подсказката на реда; "Отмени" връща имената.Целта: файл по файл, преди да се запише колекция, да не остане участък, по който минават повече от един трак. Трите действия за това - махане на дублираните участъци, махане на излишните разклонения и затваряне на малките дупки, останали след тях - са събрани, а "Проверка за дубликати" казва дали е останало нещо.
.gpx, и колекция (.json). Долното "Зареди колекция" в "Тракове-източници" го няма; "Изнеси колекцията" остава.LW в js/app.js..gpx, но не е част (не се брои и няма номер). Съобщението казва колко дупки са затворени. По-дългите дупки остават както досега - с пръстен и с двата бутона. Махнатата с × връзка остава отворена - следващото действие не я затваря пак. Самозатварянето до отклонението (20 м) си остава отделно и важи винаги.gpxk.settings), не в трака и не в колекцията - не пътуват с нея. "Връщане по подразбиране" връща всичко наведнъж..gpx файла наведнъж (копче или пускане на файла върху страницата). След зареждане картата показва целия трак. Лош файл дава ясно съобщение и нищо не се губи. Бутонът "Нов" (последен в реда под "Тракове-източници") маха всички заредени тракове и заедно с тях частите на текущия маршрут, защото част не може без своя трак. Без въпрос "Сигурен ли си?": "Отмени" връща всичко - траковете (с изрезките и решенията им) и маршрута. Записаните маршрути в библиотеката остават. Бутонът е неактивен, когато няма какво да махне.Копчето с глобуса в първия ред на лентата (вдясно от "Имена", преди зъбното колелце) отваря прозореца "Език":
gpxk.tr.<език>), така че при следващо отваряне не се превежда пак. Браузър без преводач (засега той е в Chrome на компютър, от версия 138) вижда реда избледнял и забранен, със съобщение "Браузърът ти не поддържа автоматичен превод"; всичко останало работи.Изборът се помни в браузъра (gpxk.lang: auto, bg, en или tr:<език>, напр. tr:de). Смяната е веднага, без презареждане и без да се губи нещо по картата, и сменя и езика на страницата (lang), за да не се включи отделно превеждането на самата страница от браузъра. Речникът (и преводът) дава всеки видим надпис: копчетата, прозорците, подсказките, съобщенията, числата с мерните единици и датите, надписите върху картата и текста, който се рисува в "Картина" и в изнесения .png. Не се превеждат твоите данни - имената на маршрути, спирки, тракове и файлове (и изнесеният .gpx, който остава точка за точка същият), имената на доставчиците (Esri World Imagery, OpenTopoMap, Nominatim, Open-Meteo, OpenTopoData) и самото "CX Tracks". Маршрут, създаден на английски, получава името по подразбиране на английски ("New route"); съществуващите имена не се пипат при смяна на езика.
Чете се отляво надясно: логото, полето за името на маршрута (до 372 px), "Отклонение" и после бутоните. "Отмени", стрелката надолу, скриването на лентата и "Следене" не са в нея - те са на картата (виж по-долу).
.gpx файлове; същото става и с пускане на файл върху страницата. До 10 файла наведнъж, лош файл дава съобщение и нищо не се губи..png картината за офлайн. Преди да я сглоби казва колко точки излизат и около колко мегабайта, а файлът се казва marshrut-<име>-<дата>.png. Сглобява се в браузъра от плочките и не качва маршрута никъде; ако няма какво да се снима, казва го, вместо да направи празна картина..gpx файл - една линия, със спирките. Преди това пита за името на файла (прозорецът "Име на файла", предложено <име на маршрута>.gpx). Празен маршрут не сваля нищо и не пита, а казва, че клик върху трак слага първата част. Това е файлът за навигация; за архив на цялата работа служи "Изнеси колекцията".<име>.gpx и записва маршрута под същото име в "Записани маршрути" (описан е в "Какво може"). Вижда се при всяка ширина.Горе вляво, отляво надясно:
aria-pressed="true") и го спира на същото място; отделно копче "Стоп" няма. Същото важи и за копчето "Следене" под профила.Трите са в редица, когато се събират в мястото между левия ръб на картата и реда горе вдясно ("Сателит / Топо", "Отмени", "Точки", "Север") с поне 8 px запас; когато не се събират, са надолу в стълбичка, за да не го застъпват. Решава наличното място, не ширината на екрана: пресмята се наново при промяна на размера или завъртане на екрана, при скриване и връщане на лентата, при начало и край на следенето и когато в реда вдясно се появи или скрие "Точки" или "Север". Мери се истинската ширина на "Следене / Стоп". Затова на телефон (360-430 px) групата обикновено е в редица, при 320 px и надолу е в стълбичка, а с "Стоп", "Север" или точки на картата може да слезе в стълбичка и на по-широк екран.
Горе вдясно, отляво надясно: Сателит / Топо (радар и връх с хоризонтали), Отмени (квадратно копче със стрелка, колкото "Сателит / Топо"; връща последното действие и е избледняло, когато няма какво да върне; Ctrl+Z прави същото) и Точки (чавка и пръстен с номер). "Точки" се вижда само докато на картата има чертани точки: при празен маршрут го няма, с първата точка се появява, а щом се махне последната ("Махане", "Нов", "Изтрий" или "Отмени"), пак се скрива. Сложената или махната отметка се помни и не се губи от скриването - при следващата точка копчето излиза в същото състояние. Копчето е само на това място (и при отворена, и при скрита лента). Под тях, при завъртяна карта, копчето "Север". Връща я и цъкане на празно място на картата (в режим "Избор" и при следене), а при първото скриване излиза подсказка как става това.
На тесен екран лентата се събира: при ширина до 1060 пиксела "Картина" и "Изнеси .gpx" се скриват от нея ("Запази" остава), а при ширина до 1200 пиксела от "Добави тракове" остава само "Добави", както и от "Отклонение" - само полето без думата. Същите копчета стоят и под картата, така че нищо не се губи. При ширина до 900 пиксела от логото остава само кръгчето.
Вторият ред на лентата не носи бутони за действия, а режимите "Избор", "Изрязване", "Добавяне", "Местене", "Махане" и търсенето на адрес вдясно. Основата на картата ("Сателит / Топо", с икони), "Отмени" и отметката "Точки" стоят на самата карта, горе вдясно, а приближаването ("+", "−"), "Центрирай" и "Покажи целия маршрут" - долу вдясно, в равна по ширина колона. Кръглата стрелка нагоре е плаващо копче, заковано за екрана, а не за картата: стои на 26 px от долния и 56 px от десния ръб, така че докато картата е на екрана, е в една редица с колоната, вляво от "Покажи целия маршрут". Вижда се винаги - и когато си слязъл към текстовите карти ("Части", "Тракове-източници", "Дубликати", "Записани маршрути") - и с едно натискане връща плавно най-горе, при картата. "Центрирай" е мерник без дума (при задържане излиза "Центрирай върху положението ти от GPS", същото е и името за екранни четци); центрира картата върху положението ти от GPS: при следене връща и автоматичното центриране, и посоката; извън следене ползва последното известно положение, а ако няма такова, пита браузъра веднъж и при отказ казва "Няма сигнал от GPS". Докато тече следене, под лентата се появява редът на следенето: "Следене: <име>", превключвател "Карта / Картина", превключвател "Посока / Север", "Екранът буден" (на телефон само "буден") и "Изнеси .gpx"; режимите тогава се скриват. Следенето се спира със "Стоп" в първия ред на лентата (мястото на "Следене"). "Екранът буден" е включено по подразбиране (оцветено) и изборът се помни: докато следиш, екранът не заспива - ключалката за екрана се иска при тръгване и наново всеки път, когато се върнеш в приложението (браузърът сам я пуска, щом страницата се скрие). Натискането го изключва - тогава екранът може да заспи, а следенето пак продължава. Под съобщението в панела "Следене" ред казва какво става: "Екранът няма да заспива, докато следиш.", "Екранът може да заспи - следенето продължава при събуждане.", а когато браузърът не може или откаже - "Този браузър не може да държи екрана буден..." или "Браузърът не позволи екранът да стои буден (например при пестене на батерия)...". "Стоп" пуска ключалката. При "Посока" (по подразбиране) картата в изгледа "Карта" се върти плавно, така че посоката на движение сочи нагоре; посоката идва от GPS, а когато той не я дава (при стоене или бавно ходене) - от последните две записани точки, и при стоене на място остава последната. При "Север" картата стои север нагоре. Изборът се помни. Горе вдясно, под "Сателит / Топо", стои двурежимно копче със стрелка "С", която показва накъде е север (буквата и надписите по картата остават изправени). Докато картата е завъртяна, то предлага "Север" и я изправя север-нагоре; докато е север-нагоре, а посоката на движение е известна, предлага "Посока" и я завърта обратно по последната известна посока. Работи и при следене, и извън него: копчето и ключът "Посока / Север" в реда на следенето са едно и също и стоят в синхрон, а изборът се помни. Когато посока още не е известна (не е имало следене от отварянето на страницата), копчето предлага само "Север" и се вижда само при завъртяна карта. Дръпнеш ли картата с пръст, тя спира да следва и центъра, и посоката; "Центрирай" връща и двете. След "Стоп" картата не се обръща сама: остава в последната посока, а последната посока се пази - "Север" изправя картата, а после "Посока" я връща. "Изнеси .gpx" сваля изминатото дотук като .gpx (само изминатата линия - един трак с височина и час на всяка точка, без планирания маршрут), без да спира следенето; преди файлът да слезе пита за името му. Докато има по-малко от две записани точки, копчето е избледняло и не прави нищо.
Веднага под картата е редът с числа (Дължина, Изкачване, Спускане, Наклон до, Части, Точки, Пропуснати) и профилът на височината с отметката "Наклон в проценти". Над числата, докато има излишни пръстени, стои редът "Излишни пръстени: n · Прегледай" (отваря списъка, виж по-горе). Под числата са същите копчета като в горната лента - "Изнеси .gpx", "Картина", "Запази", "Следене" - и полето "Отклонение", а после кратко упътване за кликовете на картата. После идват панелите в две колони: вляво "Части в маршрута" и "Точки", вдясно "Тракове-източници" и "Дубликати". Докато тече следене, най-горе стои панелът "Следене" с четири числа (Изминати, Време, Остават, Встрани) и ред със съобщение. След "Стоп" панелът остава с числата, съобщението става "Следенето спря. Изминатият път е записан като отделен маршрут "изминат 1 окт"." и под него излиза копче "Свали изминатото като .gpx" (със същия прозорец за име). Понеже на телефон панелът е под картата, извън екрана, същото копче излиза и върху самата карта, долу: тънък ред "Следенето спря: изминат 1 окт" с "Свали изминалото като .gpx" и ×, който стои, докато не го затвориш с ×. Последното изминато се пази в браузъра: панелът и редът остават и при отваряне на друг маршрут, и след презареждане на страницата, а копчето сваля същия файл и по-късно. Махат се с ново следене или с × в ъгъла на панела. Изминатото става трак "изминат <дата>" в "Тракове-източници" (с отметка "изминат") и отделен запис със същото име в "Записани маршрути" - една част, целият изминат трак; записът се отваря и редактира като всеки друг маршрут, а текущ си остава следеният маршрут.
Докато тече следене, изминатото дотук (ширина, дължина, височина, час и точност на всяка точка) се записва и в браузъра - на всеки 10 секунди и веднага, щом страницата се скрие или затвори. Пази се само едно незавършено следене: ново следене заменя стария запис, а "Стоп" го чисти (изминатото вече е в последното изминато). Ако следенето прекъсне, без да е натиснат "Стоп" (паднала батерия, затворен браузър, презареждане), при следващо отваряне на приложението насред екрана излиза прозорецът "Незавършено следене": разстоянието, броят точки, "Тръгнал 1 окт, 17:42 · следене по „<име на маршрута>“" и "Следенето прекъсна, преди да го спреш. Изминатото е запазено." Копчетата: "Свали .gpx" (записва го и отваря прозореца за име на файла), "Запази" (записва го) и "Изхвърли" (маха го без запис). Записаното влиза точно както след "Стоп" - трак "изминат <дата на тръгване>" и отделен запис в "Записани маршрути", панелът "Следене" и редът върху картата за сваляне излизат както след спиране - и записът в браузъра се чисти. × затваря прозореца, без да пипа записа; той пита пак чак при следващо отваряне на страницата. Прозорецът излиза само при поне 2 записани точки; запис с 0 или 1 точка се изхвърля сам. Ако браузърът не позволява запис (например частен режим), при тръгване на следенето излиза веднъж "Следенето не се пази в браузъра".
Заспал екран. Изгасналият екран (или излизането от приложението) не е край на следенето. При връщане, ако GPS-ът не е дал положение, докато страницата е била скрита (iPhone/Safari тогава спира местоположението изцяло и не го пуска сам), той се пуска наново, а ако до 8 секунди пак няма положение - още веднъж. Докато чака, панелът пише "Чакам сигнал от GPS..." (както при тръгване), а при първото ново положение се връща "По линията си. Точност на GPS: 12 м.". Същият запис, същият часовник, същият маршрут - без "Стоп" и без прозорец "Незавършено следене" (той е само за страница, убита от телефона и заредена наново). Ако и последната точка преди паузата, и първата след нея са върху следения маршрут (до 20 м от линията му), между тях в същия трак се вмъкват точките на маршрута - следата върви по самите му завои, все едно през паузата си се движил по него. Същото става при всяка дупка в GPS, и при буден екран (тунел, изгубен сигнал). Следата върви напред по посоката на маршрута; при затворен кръг - през края му към началото, дори когато назад е по-кратко (ако през паузата си пресякъл началото на кръга, тя може да обиколи почти целия кръг); назад по маршрута върви само при отворен маршрут, когато напред няма такова място. Вмъкнатите точки влизат в изминатото, в дължината на записа, в .gpx и в записа в "Записани маршрути"; всяка има час, разпределен по разстояние между часовете на двете измерени точки, височина от маршрута и празна точност. Височината на вмъкнатата точка се чете в профила на маршрута на нейното място по него - същите числа, които показва профилът под картата и които излизат в изнесения .gpx на самия маршрут (с един знак след запетаята). Ако профил няма (услугата за височини не отговаря или си офлайн, а и файловете нямат височина), се взема височината, записана в самия трак, а ако и тя липсва - по права между височините на двете измерени точки, както преди. Измерените положения не се пипат: те си остават с височината от GPS. Ако някоя от двете точки е встрани от маршрута (над 20 м) или маршрутът е празен, двете се свързват с права отсечка в същия трак и тя се брои в изминатото.
Цветът на дупката. Попълненото при дупка в GPS - и следата по маршрута, и правата отсечка до точка встрани - се чертае кехлибарено (--app-walk-gap) на пунктир, ясно различно от зелената измерена следа и от цветовете на частите. За дупка се брои всеки участък между две поредни положения от GPS, по-дълъг от 40 м по следата (при нормално движение поредните положения са на няколко метра едно от друго). Цветът е навсякъде, където се чертае изминатото: на живата карта при следене, върху запазената картина, на изминатия трак в "Тракове-източници", в частта на записа "изминат <дата>", отворен като маршрут, и в "Картина" (.png) на такъв маршрут. Това е само цвят: няма отделен ред в числата и значка в списъка с части, а в .gpx файла линията си остава една, без цвят. Грешка на GPS, дошла докато страницата е скрита или докато чака сигнал след връщане, не спира следенето. Ограничение за дължината на паузата няма.
Най-долу са "Запазена картина" и "Записани маршрути", а в дъното на страницата - "Версия 1.8.0 · 4 октомври 2026", копче "Тъмна тема" / "Светла тема" и бележка, че данните живеят само в този браузър.
Части в маршрута (вляво, свит панел) - от какво е сглобен маршрутът досега. Заглавието носи брояча и копчето "Изтрий".
Редовете с дупки (под частите) - къде маршрутът е прекъснат.
GAP_BRIDGE_MAX_M в js/core.js). По-дългата не се свързва: остава отворена, а долу излиза "Дупката е 720 м - над 500 м не се свързва направо. Затвори я с чертаене в "Части в маршрута"."; чертаенето е с "Затвори с чертаене" в този ред. Копчето "Свържи направо" в реда си остава без ограничение - то е изричен избор за точно тази дупка. Затворените сами дупки пазят тънката прекъсната линия и знак нямат.Точки (вляво, свит панел) - чертаните точки на маршрута.
Тракове-източници (вдясно, свит панел) - какво е заредено. Заглавието носи брояча и копчетата "Добави тракове" и "Нов".
Дубликати (вдясно, свит панел) - участъци, които вървят по вече приетото трасе.
Запазена картина - картината за този маршрут без връзка.
Записани маршрути (най-долу) - библиотеката в браузъра.
Прозорецът "Импорт на GPX" - отваря се от "Добави тракове" и от "Добави .gpx или колекция" на празния екран на картата (от 1.5 - едно копче вместо двете "Зареди колекция" и "Добави .gpx", които отваряха един и същ прозорец).
Прозорецът "Картина за офлайн" - отваря се от "Картина" или "Направи картина".
marshrut-<име>-<дата>.png. При "Топо" отметката "Надписи" е забранена, защото топографската карта вече носи имената си.Прозорецът "Име на файла" (при "Запази" - "Запис на маршрута", с отметките за изглаждане над името; виж "Запази и записани маршрути") - отваря се от "Изнеси .gpx" в реда на следенето и от "Свали изминатото като .gpx" в панела "Следене" и в реда върху картата след спиране (изминатото), от "Изнеси .gpx" в лентата и под профила и от "GPX" в реда на записан маршрут (маршрутът), и от "Запази".
izminat-<име на следения маршрут>-<дд.мм.гггг>, за маршрута и за "Запази" - с името на маршрута. Enter или "Свали" (при "Запази" - "Запази") потвърждава, Escape или "Отказ" затваря, без да сваля и записва нищо.\ / : * ? " < > |), стават тире.Прозорецът "Точка" - отваря се от копчето "Точка" при следене.
Прозорецът "Запис на изминатото" - излиза след "Стоп", когато има записан път.
<име>.gpx по същия избор, със спирките; "Отказ" и Escape оставят записа суров.Прозорецът "Излишни пръстени (n)" - излиза сам след зареждане, ако има излишни пръстени, които не са задържани, или от реда "Излишни пръстени: n · Прегледай" под картата.
Менюто на разклонение и на участък - малко меню до пръстена или до мястото на клика (виж "Меню на разклонението и на участъка" по-горе). След "Изтрий разклонението" долу излиза "Разклонението е изтрито - тракът се чете цял. "Отмени" го връща.", след "Изтрий участъка" - "Участъкът е изтрит (2,4 км) - няма го на картата, в трака и в маршрута. "Отмени" го връща."
Менюто при докосване на точка на картата.
Лентата "Изрязване" - стои долу на картата, докато си в режим "Изрязване".
Подсказката под курсора (на компютър) казва какво има под мишката и какво прави кликът.
Полето за търсене на адрес - под него се спуска списък с намерените места.
Съобщенията долу на картата - един ред, който изчезва сам (около 3 секунди, грешките - около 6). Потвърждават какво е станало и как се връща.
Предупрежденията стоят по-дълго (около 6-8 секунди) и са в червено.
Празният екран на картата се показва само когато няма нито тракове, нито части: "Тук ще се появи маршрутът" с "Няма заредени тракове. Зареди колекция от файл или добави отделни .gpx." и (от 1.5) едно копче "Добави .gpx или колекция".
Траковете, маршрутите и картините се пазят само в браузъра на устройството (IndexedDB). С колекцията се пазят и изтритите участъци на всеки трак (dels), изтритите разклонения (dropJ) и задържаните излишни пръстени (keptJ) - и в изнесената колекция. Няма сървър, вход и обща база. За да прехвърлиш работата на друго устройство, натисни "Изнеси колекцията" и зареди файла там с "Зареди колекция". Изтриването на данните на браузъра трие и колекцията, затова я изнасяй от време на време.
Сайтът се хоства от GitHub Pages: https://cepreu5.github.io/cx-tracks/. Следенето по GPS иска защитена връзка (https), затова работи от този адрес.
Локално няма какво да се инсталира и да се сглобява. Може да се отвори index.html направо от диска, но за да работят всички части (особено запазването в браузъра и офлайн обвивката), е по-добре през малък локален сървър:
python3 -m http.server 8000
# после отвори http://localhost:8000/
Версията стои в дъното на страницата ("Версия 1.8.0 · 4 октомври 2026") и се пише само на едно място - js/version.js. Същият файл дава името на офлайн кеша в sw.js (gpxk-v31-1.8.0), така че страницата и кешът не могат да се разминат. При всяка промяна, която стига до потребителя, се вдига GPXK_VERSION (и датата GPXK_DATE); браузърът тогава сваля новите файлове и трие стария кеш. Поправка без нова версия вдига само номера пред нея в GPXK_CACHE (gpxk-v28-1.2.0 → gpxk-v29-1.2.0), иначе браузърите пазят старата страница.
Чист HTML, CSS и JavaScript, без външни библиотеки и без стъпка за сглобяване. Скриптовете са класически (не модули), за да вървят и от диска.
index.html страницата
js/version.js версията (дъното на страницата и името на кеша)
js/i18n.js езикът: речникът bg/en по ключове, смяната и автоматичният превод
css/app.css темата (светла и тъмна) и оформлението
js/util.js формат на числата, геометрия, съхранение
js/map.js картата: плочки, местене, приближаване, завъртане, чертане
js/gpx.js четене и писане на GPX
js/core.js ядрото: дубликати, изрязване, части, геометрия на маршрута
js/elev.js височини, изкачване, наклон
js/snapshot.js картината за офлайн
js/follow.js следене по GPS
js/app.js интерфейсът
assets/splash.jpg снимката на началния екран (в офлайн кеша)
sw.js офлайн обвивка (кеш на файловете на приложението)
tests/ проверки на ядрото (node tests/core.test.js), в браузъра (node tests/browser.cjs) и тестови .gpx
„Mountain Biking – Gooseberry Mesa and Hurricane Cliffs“, автор BLM Utah (Bureau of Land Management), Wikimedia Commons, обществено достояние (public domain). Прекомпресирана до 1280×914, около 190 KB, и пазена в assets/splash.jpg - приложението не я тегли отвън.
| За какво | Услуга |
|---|---|
| Сателитни снимки | Esri World Imagery |
| Имена и пътища върху снимките | Esri Reference (World_Boundaries_and_Places, World_Transportation) |
| Топографска карта | OpenTopoMap |
| Търсене на адрес | Nominatim (OpenStreetMap) |
| Надморска височина | Open-Meteo Elevation, резерва OpenTopoData (SRTM 30 м) |
Всички са безплатни и без ключ. Ако някоя не отговори, приложението казва това и продължава да работи.
skipsoverrides.gpx, картината и следенето, но тя не е част: няма номер и не се брои в "Части", а в списъка стои като тънък ред "обща отсечка · X км · минава се веднъж". Където такъв дубликат няма, дупката си остава дупка с "Затвори с чертаене" / "Свържи направо".forks) и се връща, щом отново избереш стария клон. Изборът влиза в "Отмени", в запазеното състояние и в изнесената колекция, затова след презареждане маршрутът минава по същия клон. Където клон за избор няма, дупката си остава с "Затвори с чертаене" / "Свържи направо". От 1.4.2 и вторият пръстен на "близалката" (далечният край на общата отсечка, където обиколката тръгва и се връща) е пълноценно разклонение: участък, който опира с двата си края в една и съща точка, е там два клона - излизащата и връщащата се отсечка, така че изборът на едната не е избор и на другата. Маршрутът се разпознава и там (пръстенът е плътен), менюто предлага само обиколката в обратна посока, а изборът ѝ я обръща и пази частите след нея - не изхвърля продължението. Накъде тръгва маршрутът се сравнява на едно и също разстояние по маршрута и по клоновете (до 80 м, но не повече от половината на най-късия клон и не под 15 м), така че и клон, по-къс от 80 м, се разпознава. От 1.4.3 и там, където един трак минава през себе си, стои пръстен: пресичането на две негови отсечки е разклонение с четири клона, менюто на пръстена предлага двете посоки на другата отсечка ("по посоката на записа" / "срещу посоката на записа"), а изборът продължава маршрута натам и влиза в "Отмени". Прави се само истинско кръстовище: двете отсечки се режат в точката под поне 30° и са в различни приети участъци - плиткото застъпване на GPS шума и пресичането вътре в един участък не дават пръстен. Пресичанията между два различни трака остават както бяха ("без избор", предлагат се за изтриване).<име>.gpx и записва маршрута в "Записани маршрути" под същото име. Текущият маршрут вече е в списъка, затова се преименува той - втори запис не се прави. Вдига и датата на промяна, а списъкът "Записани маршрути" е подреден точно по нея, затова записаният отива най-горе. Съобщението казва и двете: "Свален Моят маршрут.gpx · записан в „Записани маршрути“ като „Моят маршрут“". Празен маршрут се записва, но .gpx не слиза (съобщението го казва). "Отказ" не прави нищо..png): сглобява се в браузъра от плочките, с начало и край, посока, дължина, изкачване, наклон, скала, дата и легенда. Пази се заедно с географския си обхват. При обхват "около маршрута" с числа и легенда панелът стои горе вляво, а маршрутът се събира в свободното място под него (и над скалата) и се центрира там - нищо от линията не ляга под панела; дълга и тясна следа се смалява, колкото е нужно, но не се мести вдясно от панела. "Видимото на картата" пази точно кадъра, който се вижда. Връзките "свързано направо" се чертаят и тук - кехлибарено на пунктир, без надпис..png, в списъка "Точки" (там се преименуват и махат, както точките от "Добавяне"), в изнесения .gpx като <wpt> (спирки) и в записа на изминатото в "Записани маршрути". Пазят се и в незавършеното следене.dropJ), затова пръстенът не се връща при ново пресмятане, след презареждане и в изнесената и заредена колекция.dels); част от друг маршрут, която минава през тях, се маркира като невалидна.keptJ, затова списъкът не изскача пак сам при следващо зареждане). Прозорецът се затваря само с копче; Escape не маха нищо. Ако при зареждането е отворен прозорецът "Импорт на GPX", списъкът излиза, щом той се затвори. Докато има излишни пръстени, най-горе под картата стои ред "Излишни пръстени: 3 · Прегледай", който отваря същия списък.js/i18n.js, плюс автоматичен превод на още езици с вградения в браузъра преводач. Копчето с глобус и кода на езика ("БГ" / "EN", при превод - кодът му, напр. "DE") е в лентата, до "Имена"; на тесен екран лентата се пренася на нов ред и копчето пак е на екрана. Подробно - в "Език" по-долу.