# AnyGIS Alair — OsmAnd

Сервер: https://anygis.alair.uk

## На телефоне

1. Откройте `AnyGIS_Alair.osf` через OsmAnd и импортируйте плагин. Он добавляет каталог; все карты сразу устанавливать не нужно.
2. В «Карты и ресурсы» найдите AnyGIS Alair и выберите нужные источники. Небольшой `.sqlitedb` содержит настройки онлайн-карты, а не готовую карту всей территории.
3. Включите «Онлайн-карты». В «Настроить карту» выберите источник основной карты или «Слой поверх карты» / «Слой под картой».
4. Для сохранения участка используйте «Скачать карту» в меню выбранной растровой карты. Укажите область и масштабы. Для каждого наложения скачивание выполняется отдельно. Названия пунктов могут различаться между версиями OsmAnd.
5. После загрузки проверьте нужный участок в авиарежиме. Скачанные изображения хранятся на телефоне; сервер не нужен для их просмотра.

`AnyGIS_Alair_Gory.osf` сразу добавляет десять источников, без выбора через каталог: уклоны, экспозицию, зимний Sentinel-2, Вестру, Slopemap, Google Satellite HD и четыре слоя Strava: все активности, бег/пешие, велосипед, зимние активности. `AnyGIS_Alair_Archive.osf` сохраняет старый каталог, включая источники, работоспособность которых не подтверждена. Для повседневного использования выбирайте основной каталог.

## Новые слои и легенды

- **Google Satellite HD:** спутниковая подложка Google без подписей, тайлы 512×512, масштабы 0–19. Это обычная подложка: дата и детализация съёмки зависят от места; она не является отдельным зимним покрытием. Для зимних снимков выбирайте слой Sentinel-2 ниже.

- **Уклоны Copernicus:** глобальная модель поверхности GLO-30, около 30 м. В недоступных публично ячейках используется GLO-90, около 90 м; в частности это обнаружено на тестовом участке Армении. Заголовок HTTP `X-DEM-Resolution` указывает реально использованные данные. Масштаб телефона не увеличивает детализацию исходных высот. При zoom 10 изображение дополнительно обобщается.
- **Легенда уклонов:** <10° прозрачный; 10–20° зелёный; 20–25° жёлтый; 25–30° оранжевый; 30–35° красный; 35–40° малиновый; 40–45° фиолетовый; ≥45° тёмно-фиолетовый. Уклоны рассчитываются методом Horn; метры скорректированы на широту.
- **Экспозиция:** направление вниз по склону. С — синий, СВ — бирюзовый, В — зелёный, ЮВ — жёлтый, Ю — оранжевый, ЮЗ — красный, З — малиновый, СЗ — фиолетовый. Участки с уклоном <3° прозрачные. Та же модель высот, что и для уклонов.
- **Зимний Sentinel-2 2025–2026:** натуральные цвета, исходное разрешение 10 м; снимки только за 01.12.2025–28.02.2026. Это мозаика доступных сцен, а не единовременная съёмка всех стран. Облака и тени исключаются по классификации SCL; остаются пробелы. Дата календарной зимы не гарантирует снежное покрытие. В северных районах доступность ограничена полярной ночью. Реальные даты указаны в `X-Scene-Dates`; JSON для тайла доступен по `/metadata/{x}/{y}/{z}` после его загрузки.
- **Вестра:** данные перевалов и вершин из каталога, используемого nakarte.me. Значки и подписи отрисовываются на вашем сервере.
- **Slopemap:** исходный источник VotEtoVid с вычислением каталогов по координатам, до zoom 13.

Уклоны, экспозиция и зимние снимки работают при zoom 10–16. База открытых моделей покрывает выбранные страны, но наличие данных и качество проверяются по конкретному месту. Метод не устраняет деревья, здания и артефакты DSM. Результаты проверки отдельных горных участков находятся в `regions-check.json`.

Первое построение зимнего тайла может занимать десятки секунд, иногда около минуты. Готовый тайл сохраняется на сервере даже при разрыве соединения с телефоном; повторная загрузка использует кэш. При подготовке большого офлайн-участка зимнего слоя закладывайте дополнительное время.

## Strava

Подключены 20 источников исходного каталога: различные виды активности и цветовые схемы. Проверены реальные тайлы через ваш сервер на zoom 13 и 14 у Казбека. HD-источники используют тайлы 512×512, остальные — 256×256. В быстрый пакет входят четыре HD-слоя: все активности, бег/пешие, велосипед и зимние активности. Зимний слой Strava показывает тренировки, а не спутниковую съёмку.

Текущие cookie действуют до **09.10.2026 18:11:46 МСК**. После истечения срока новая онлайн-загрузка потребует обновления четырёх значений: `CloudFront-Key-Pair-Id`, `CloudFront-Policy`, `CloudFront-Signature`, `_strava_idcf`. Уже скачанные на телефон тайлы сохраняются. Автоматическое обновление не настроено: сервер получает геоблокировку страницы входа Strava. Авторизованные запросы к тайлам с этого сервера работают.

Секреты хранятся только в `/opt/anygis/strava-auth.json`, доступ `root:anygis`, права 640. Формат JSON: поля `key`, `policy`, `signature`, `idcf`. Для обновления замените значения в этом файле через SSH; обработчик перечитывает его при запросах. Не помещайте файл в `/opt/anygis/downloads`. Значения cookie отсутствуют в OSF, дескрипторах источников и публичных URL.

## Старые карты

`sources-audit.json` содержит результат для всех 317 записей исходного плагина. `ok` — декодируемое изображение получено на двух масштабах в районе предварительного просмотра; Strava проверена на zoom 13 и 14 у Казбека. Это не подтверждение всех мест и всех масштабов. `failed` может означать недоступный сервис, отсутствие покрытия тестового места, старый URL или тайм-аут; `partial` — прошла только часть проверки. Слои, требующие сторонних учётных данных или недостающей обработки изображений, отмечены отдельно.

## Источники и атрибуция

AnyGIS: https://github.com/nnngrach/AnyGIS_server

Copernicus DEM 2021: https://registry.opendata.aws/copernicus-dem/ — © DLR e.V. 2010–2014, © Airbus Defence and Space GmbH 2014–2018. Provided under COP-DEM licence by the European Union and ESA. Доступ 08.10.2026.

Sentinel-2: Copernicus Sentinel data 2025–2026; Earth Search / Element 84 и Sentinel COGs: https://github.com/Element84/earth-search

Вестра: https://westra.ru/passes/ ; данные через https://nakarte.me/westraPasses/westra_passes.json

Остальные карты сохраняют указания источников из исходного плагина. Возможность массовой офлайн-загрузки также зависит от правил конкретного поставщика.

## Администрирование

Основной код и сборка: `/opt/anygis/source`, образ Docker `anygis-legacy:local`, контейнер `anygis-legacy`, слушает только `127.0.0.1:8080`.

Дополнительные обработчики: `/opt/anygis/addons.py`, служба `anygis-addons`, порт `127.0.0.1:8090`. База настроек: `/opt/anygis/data/base.sqlite`. Каталог и файлы: `/opt/anygis/downloads`. Метаданные снимков: `/opt/anygis/metadata`. Nginx: `/etc/nginx/sites-available/anygis`.

HTTPS обслуживает Nginx; сертификат Let's Encrypt обновляется системным таймером Certbot. Кэш тайлов Nginx ограничен 3 ГБ. Автозапуск настроен для Docker, контейнера и дополнительных обработчиков. Использован временный swap 2 ГБ для сборки; он не добавлен в fstab.

Диагностика:

```sh
docker logs --tail 100 anygis-legacy
journalctl -u anygis-addons -n 100 --no-pager
nginx -t
systemctl status certbot.timer
curl https://anygis.alair.uk/health
```

Для резервной копии базы используйте SQLite online backup или остановите контейнер на время копирования. Сохраните каталог `/opt/anygis`, конфигурацию Nginx и службу systemd. Архив исходного репозитория может содержать исторические данные сервисов; пользовательские SSH-доступы в выдаваемый комплект не включены.

Проверен серверный API и структура импортируемых файлов. Фактический импорт на вашем Android и скачивание участка на телефоне ещё требуют проверки в OsmAnd.
