Как загрузить карту на findkp.ru
Для того, кто готовит карты в OCAD и выкладывает их на сайт: что выгрузить, как загрузить и какие коды раздать постановщикам и начальнику дистанции.
- Загрузка — через сайтСтраница findkp.ru/upload.html, пароль выдаёт владелец сайта. aaPanel и FTP не нужны.
- Коды сайт придумывает самКод карты для постановщиков и код начальника дистанции появляются сразу после загрузки.
- Постановщиков создавать не нужноВсе открывают карту по одному коду и сами делят КП в приложении.
- Как устроено
- Выгрузка из OCAD
- Загрузка через сайт
- Коды
- Проверить и раздать
- Замена и удаление
- Ошибки
- Вручную на сервере
1Как устроено
Карта — это три файла из OCAD и два кода. Название карты приложение показывает постановщикам.
| Картинка нужна | Карта в PNG или JPEG. |
|---|---|
| Привязка нужна | World-файл картинки: .pgw к PNG, .jgw к JPEG. По нему приложение ставит КП и точку «я». |
| КП нужны | Файл дистанции IOF XML 3.0 с координатами контрольных пунктов. |
| Код карты | 6 цифр. По нему карту открывают постановщики. |
| Код начальника по желанию | Есть код — телефоны постановщиков отправляют на сервер свои КП и отметки, а начальник по своему коду видит сводку «Постановка». Нет кода — всё остаётся в телефоне каждого. |
Названия файлов значения не имеют. Название карты видит каждый, кто открыл её по коду, а сами коды сайт наружу не отдаёт.
2Выгрузка из OCAD
Названия пунктов меню — по справке OCAD, английский интерфейс; карты на сайте выгружены из OCAD 2020. В другой версии пункты могут называться чуть иначе. Подойдут файлы и из другой программы, если они такие же: картинка с world-файлом в UTM / WGS 84 и IOF XML 3.0 с координатами КП.
Шаг 1. Привязка карты — один раз на карту
: режим Real world coordinates, система координат UTM, WGS 84, зона — по долготе места:
- 37 North — от 36° до 42° в. д., почти вся Московская область;
- 36 North — западнее 36° в. д.
Карта в другой системе (СК-42, МСК, Гаусс — Крюгер) не загрузится: сайт проверяет, что привязка в UTM. Без привязки OCAD не даст выгрузить world-файл.
Не подойдёт и карта, которая сама пересекает 36° или 42° в. д.: приложение выбирает зону по долготе точки, и за границей зоны всё съедет.
Шаг 2. Картинка карты с привязкой
- Откройте файл карты. Можно и проект постановки — тогда на картинке будут кружки КП. Приложение рисует КП поверх само, так что подойдёт любой вариант.
- , формат PNG (можно JPEG, но на наших картах PNG выходит меньше).
- Область — Entire Map, вся карта, чтобы все КП попали на картинку.
- Resolution — 300 dpi. При масштабе 1:10 000 это около 0,85 м на пиксель, картинка около 3000 × 3800 пикселей и 1–2 МБ. Больше не нужно: карта едет на телефон по мобильной сети и хранится в его памяти для работы без сети.
- Галка Create World file (*.pgw), для JPEG — (*.jgw). Рядом с картинкой появится файл привязки.
Картинку и привязку всегда берите из одной выгрузки: привязка от другой выгрузки сдвинет все КП. Страница загрузки это заметит — покажет КП за краем картинки.
Шаг 3. Контрольные пункты (xml)
- В проекте постановки: .
- Версия — IOF 3.0 (не 2.0.3).
- Получится файл
….Courses.xml.
В приложение попадут все КП проекта, а не одной дистанции. Номер КП — его код в OCAD, старт и финиш подписаны «Старт» и «Финиш».
3Загрузка через сайт
- Откройте findkp.ru/upload.html на компьютере и введите пароль. Пароль выдаёт владелец сайта, у каждого загрузчика свой. Страница помнит его, пока открыта вкладка.
- Название — его увидят постановщики, например
Протвино-осень. Буквы, цифры, пробел и знаки- _ ( ) , №. Поменять потом нельзя. - Перетащите три файла в рамку или нажмите Выберите файлы — можно все сразу, сайт сам разберёт, где что. Файл .ocd не нужен.
- Сайт проверит файлы и покажет картинку с КП. У каждого файла должна стоять галочка, а кружки КП — на своих местах: если картинка с кружками из OCAD — ровно в них.
- Код начальника дистанции — галка стоит. Сводка не нужна — снимите.
- Загрузить карту. Появятся коды и готовое сообщение для постановщиков.
Файлы вместе — до 50 МБ, картинка — до 45 МБ и 50 млн пикселей. Выгрузка по шагу 2 весит 1–3 МБ.
Предупреждение «КП за краем картинки» — картинка и привязка из разных выгрузок, xml от другой карты или на картинку попала не вся карта. Загрузить можно, но лучше выгрузить заново.
Без пароля выгрузку можно проверить на главной findkp.ru: вкладка Загрузить файлы → три файла → Показать на карте. Файлы при этом никуда не отправляются.
4Коды
- Код карты раздают постановщикам. Начальник может пользоваться им же.
- Код начальника — только начальнику дистанции. С ним открывается та же карта плюс сводка, код для постановщиков и кнопка Новая постановка, которая стирает всем выбранные КП и отметки.
Оба кода сайт придумывает сам: случайные, разные и не совпадают с кодами других карт. Посмотреть их можно в любой момент на странице загрузки, в списке «Карты на сайте».
- Добавить код начальника — включить сводку у карты, загруженной без неё.
- Убрать код начальника — выключить сводку. Карта по коду постановщиков работает как прежде. Если включить снова, код будет новый.
Код — единственная защита. Кто знает код карты, видит карту и может отправлять отметки. Кто знает код начальника — может стереть отметки всем.
5Проверить и раздать коды
- После загрузки нажмите Проверить на сайте — откроется приложение. Введите код карты: должна открыться карта и список КП.
- Если есть код начальника — введите и его. Над списком КП появится сводка «Постановка» и строка «Код для постановщиков».
- Скопировать сообщение и отправьте в чат постановщиков: в нём адрес сайта, код карты и ссылка на инструкцию. Код начальника — отдельно, только ему.
Заводить постановщиков не нужно. Каждый открывает карту по коду и выбирает свои КП, при этом приложение спросит имя — под ним он и будет в сводке. Как это выглядит у них — инструкция для постановщиков.
6Замена, новая постановка, удаление
Всё — кнопками у карты в списке «Карты на сайте».
- Поправили карту или дистанцию — Заменить файлы. Картинку меняют вместе с привязкой, xml — отдельно или вместе с ними. Коды и сводка остаются. Телефоны возьмут новые файлы, когда откроют карту при связи; без связи покажут старую копию из памяти.
- Поменялись номера КП — начальнику нажать Новая постановка, иначе у постановщиков останутся выбранными старые номера.
- Новая постановка на той же карте — загружать ничего не нужно: начальник нажимает Новая постановка.
- Убрать карту — Удалить. Код перестанет работать сразу.
Старые файлы при замене и удалённые карты сайт не стирает, а уносит в корзину на сервере — вернуть их может владелец сайта. Каждое действие записывается: кто и когда загрузил или заменил карту.
7Если что-то не так
- «Неверный пароль» или «Слишком много неверных паролей»
- Проверьте пароль у владельца сайта. После 10 ошибок вход закрыт на 15 минут.
- «Не IOF XML 3.0 (похоже на версию 2.0.3)»
- Выгрузите заново: , версия IOF 3.0.
- «В файле КП нет ни одного КП с координатами»
- Карта в OCAD не привязана (шаг 1) или выгружен не тот файл.
- «Привязка не в UTM»
- Карта в другой системе координат. Переключите на UTM, WGS 84 (шаг 1) и выгрузите картинку с привязкой заново.
- «КП за краем картинки» или «Ни один КП не попал на картинку»
- Картинка и привязка из разных выгрузок, xml от другой карты или экспортирована не вся карта. Выгрузите png и pgw заново одним экспортом, область Entire Map.
- «Файлы вместе больше 50 МБ»
- Картинка выгружена с большим разрешением. Хватит 300 dpi (шаг 2).
- «Карта … уже есть»
- Название занято. Обновить ту карту — Заменить файлы у неё, нужна новая — другое название.
- КП не в своих кружках, точка «я» в стороне
- Картинка и привязка из разных выгрузок. Замените их файлами из одного экспорта.
- У карты в списке оранжевая пометка
- С файлами в папке что-то не так: не хватает файла, два файла одного вида, код совпал с другой картой. Обычно это карты, положенные вручную. Замените файлы через сайт или поправьте папку (раздел 8).
8Вручную на сервере
Для владельца сайта — если страница загрузки недоступна или нужно то, чего она не умеет.
Пароли загрузчиков
На сервере (SSH или терминал aaPanel), от пользователя сайта:
cd /www/wwwroot/findkp.ru runuser -u www -- php84 upload.php passwd Иван # выдать или сменить пароль, покажет его runuser -u www -- php84 upload.php users # кто есть runuser -u www -- php84 upload.php remove Иван # закрыть доступ
Пароль сайт хранит только в виде хэша: потерянный не восстановить, только выдать новый.
Где лежит карта
Каждая карта — папка в /www/wwwroot/findkp.ru/maps/, название папки — название карты.
maps/Протвино-осень/ code.txt — код карты: 6 цифр chief.txt — код начальника (если нужна сводка) map-20261024-113005-a1b2.png — картинка (или .jpg) map-20261024-113005-a1b2.pgw — привязка (у .jpg — .jgw) course-20261024-113005-a1b2.xml — КП
Сайт называет файлы по времени загрузки — у каждой замены новые имена, так телефон
не смешает старую картинку с новой привязкой. Вручную можно класть файлы с любыми
названиями. Каждого вида — ровно по одному файлу. Корзина и журнал загрузок — в
/www/wwwroot/findkp.ru/data/: trash/ и upload.sqlite.
Папка вручную
# с компьютера: папка с тремя файлами → на сервер rsync -av --chmod=D755,F644 "Протвино-осень" <сервер>:/www/wwwroot/findkp.ru/maps/ # на сервере: свободный код (запустить дважды — для карты и для начальника) cd /www/wwwroot/findkp.ru/maps while :; do c=$(shuf -i 100000-999999 -n 1); cat */code.txt */chief.txt 2>/dev/null | tr -d ' \r' | grep -qx "$c" || break; done; echo "$c" # коды и права cd "/www/wwwroot/findkp.ru/maps/Протвино-осень" printf '%s\n' <код карты> > code.txt printf '%s\n' <код начальника> > chief.txt # только если нужна сводка chown -R www:www . && chmod 640 *.txt
Код — ровно 6 цифр, коды карты и начальника разные и не совпадают ни с одним другим
code.txt или chief.txt, иначе откроется чужая карта. Не простой: не 111111, не
123456, не дата. Права 640 ставьте, только если владелец файла — www, иначе сайт не
прочитает код.
Посреди постановки не переименовывайте папку: сводка привязана к её названию.