Перейти до вмісту
Почати безкоштовно

Імпорт наявних даних

Ця сторінка — про дані, які вже десь існують: карти, які ваш клуб роками прив’язував до місцевості, дистанції з інших програм, цілий архів на сервері RouteGadget. Замість того щоб створювати все заново вручну, їх можна перенести в Checkpoint скриптом через 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.

Робочі приклади лежать у репозиторії Checkpoint-io/Checkpoint-Samples на GitHub. Їх опубліковано за ліцензією CC0 — копіюйте й доопрацьовуйте вільно.

RouteGadget: усі прив’язані карти та їхні дистанції

Section titled “RouteGadget: усі прив’язані карти та їхні дистанції”

Import/RouteGadget/import-routegadget.mjs бере всі прив’язані до місцевості карти із сервера RouteGadget разом із дистанціями всіх стартів, що на них відбувалися, і відтворює їх у новому клубі в Checkpoint:

  1. Читає із сервера список карт і стартів.
  2. Перераховує прив’язку кожної карти в реальне положення чотирьох кутів зображення, а КП кожної дистанції — з положення на зображенні в широту й довготу.
  3. Створює клуб, завантажує кожну карту і створює її дистанції.

Неприв’язані карти пропускаються: без реальних координат накладати на місцевість нічого.

Щоб запустити скрипт, заповніть константи на початку файлу — email і пароль вашого облікового запису Checkpoint, назву нового клубу та адреси вашого сервера RouteGadget (у прикладі вказано один із серверів British Orienteering), — а потім виконайте в Node.js 20 або новішому:

Terminal window
node import-routegadget.mjs

Скрипт сам витримує паузи між запитами, щоб не перевищити обмеження, тож великий архів переноситься не одразу.

Імпортуйте лише ті карти й дистанції, які ви маєте право публікувати. Карта належить клубу чи картографу, який її зробив, — навіть якщо вона лежить на загальнодоступному сервері.

Написали імпорт з іншого інструмента — OCAD, Purple Pen, Condes, Livelox, архіву свого клубу? Ми раді внеску в репозиторій прикладів: відкрийте pull request — він допоможе наступному клубу, який вирішить переїхати так само.

Якщо для імпорту потрібне те, чого API поки не вміє, або вам потрібна допомога з перенесенням, напишіть нам у розділі Імпорт на дошці ідей.