DISCOVERA · API v1
Архив карт для твоего приложения
Список карт, характеристики и скачивание файла для работы без интернета. Доступ выдаётся отдельно каждому приложению и только к выбранным картам.
Скачать OpenAPI для Postman / Swagger · Проверить доступность
Подключение
Адрес API: https://maps-api.mydiscovera.app. Ключ передаётся в заголовке каждого запроса:
Authorization: Bearer ВАШ_КЛЮЧ_ПРИЛОЖЕНИЯ
Администратор выдаёт ключ отдельно. Ключ Discovera Firebase или административный токен здесь не требуется. Не передавайте ключ в адресной строке.
Запросы
GET /v1/maps — доступные карты. Поиск: ?q=Брест&year=1823.
GET /v1/maps/brest-1823 — описание, границы, размер, ETag и ссылка на скачивание.
GET /v1/maps/brest-1823/download — скачать карту.
HEAD /v1/maps/brest-1823/download — получить размер и ETag без файла.
GET /v1/maps/brest-1823/preview — превью, если в описании указан previewUrl.
Вместо brest-1823 можно использовать постоянный ID из каталога. Для следующих страниц передайте nextCursor как cursor; размер страницы — limit от 1 до 50.
Пример
curl "$DISCOVERA_MAPS_BASE/v1/maps" \
+ -H "Authorization: Bearer $DISCOVERA_MAPS_KEY"
Задайте переменные окружения локально: DISCOVERA_MAPS_BASE=https://maps-api.mydiscovera.app и ключ. Не сохраняйте настоящий ключ в публичном репозитории.
Докачка после обрыва
Сохраните ETag и число записанных байтов. При повторном запросе передайте Range: bytes=N- и If-Range: СОХРАНЁННЫЙ_ETAG.
При ответе 206 допишите данные, проверив начало Content-Range. При 200 файл изменился — начните заново, не дописывайте к старому. Для готового файла проверьте размер. При 412 обновите описание и начните заново. При 416 сначала сверяйте ETag и размер. При 429 ждите Retry-After.
Формат для Android
Брест 1823 отдаётся исходным SQLite-файлом RMMaps. Его можно скачать и читать локально совместимым поставщиком тайлов. Это не PMTiles и не адрес XYZ-тайлов: передавать ссылку скачивания напрямую в MapLibre RasterSource нельзя.
Ключ даёт только чтение разрешённых карт. Встроенный в APK ключ можно извлечь, поэтому он предназначен для распространения этих карт, а не для защиты платного контента. Для каждого нового приложения выдавайте отдельный ключ.
Ошибки
401 — неверный/отозванный ключ; 404 — карта недоступна этому приложению или нет превью; 400 — неверные параметры; 429 — слишком много запросов; 503 — временная ошибка. Ответ содержит error.code и requestId.