Імпорт наявних даних
Ця сторінка — про дані, які вже десь існують: карти, які ваш клуб роками прив’язував до місцевості, дистанції з інших програм, цілий архів на сервері RouteGadget. Замість того щоб створювати все заново вручну, їх можна перенести в Checkpoint скриптом через API.
Що дає API
Section titled “Що дає API”Усе, що робить застосунок, може зробити і скрипт — з тим самим обліковим записом і тими самими правами. Для імпорту важливі:
- Клуби —
POST /api/clubsстворює клуб, якому належатимуть імпортовані карти й дистанції. - Карти —
POST /api/mapsзавантажує зображення карти разом із широтою та довготою чотирьох її кутів; цього Checkpoint достатньо, щоб накласти її на місцевість. Карту можна створити й без зображення, а прив’язати пізніше черезPUT /api/maps/{id}/georeference. - Дистанції —
POST /api/coursesстворює дистанцію на карті за координатами її КП. Якщо дистанції вже є у форматі IOF XML (v2 або v3) чи MapRun KML,POST /api/courses/importпрочитає файл і поверне КП, готові до збереження.
Усі параметри описано в браузері OpenAPI. Пам’ятайте про обмеження в 100 запитів на хвилину: розтягуйте великий імпорт у часі, а не повторюйте запити після відповіді 429.
Приклади
Section titled “Приклади”Робочі приклади лежать у репозиторії Checkpoint-io/Checkpoint-Samples на GitHub. Їх опубліковано за ліцензією CC0 — копіюйте й доопрацьовуйте вільно.
RouteGadget: усі прив’язані карти та їхні дистанції
Section titled “RouteGadget: усі прив’язані карти та їхні дистанції”Import/RouteGadget/import-routegadget.mjs бере всі
прив’язані до місцевості карти із сервера RouteGadget разом із
дистанціями всіх стартів, що на них відбувалися, і відтворює їх у новому
клубі в Checkpoint:
- Читає із сервера список карт і стартів.
- Перераховує прив’язку кожної карти в реальне положення чотирьох кутів зображення, а КП кожної дистанції — з положення на зображенні в широту й довготу.
- Створює клуб, завантажує кожну карту і створює її дистанції.
Неприв’язані карти пропускаються: без реальних координат накладати на місцевість нічого.
Щоб запустити скрипт, заповніть константи на початку файлу — email і пароль вашого облікового запису Checkpoint, назву нового клубу та адреси вашого сервера RouteGadget (у прикладі вказано один із серверів British Orienteering), — а потім виконайте в Node.js 20 або новішому:
node import-routegadget.mjsСкрипт сам витримує паузи між запитами, щоб не перевищити обмеження, тож великий архів переноситься не одразу.
Імпортуйте лише ті карти й дистанції, які ви маєте право публікувати. Карта належить клубу чи картографу, який її зробив, — навіть якщо вона лежить на загальнодоступному сервері.
Долучайтеся
Section titled “Долучайтеся”Написали імпорт з іншого інструмента — OCAD, Purple Pen, Condes, Livelox, архіву свого клубу? Ми раді внеску в репозиторій прикладів: відкрийте pull request — він допоможе наступному клубу, який вирішить переїхати так само.
Якщо для імпорту потрібне те, чого API поки не вміє, або вам потрібна допомога з перенесенням, напишіть нам у розділі Імпорт на дошці ідей.