Files
tile-server/context/2026-09-20_20-30-00_tile-server.md
2026-09-21 03:53:15 +03:00

26 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-09-20 — Тайловый сервер на C#
Собрано с нуля: ASP.NET Core 8, Clean Architecture.
## Что сделано
- Воркер `MapSyncHostedService`: cron раз в сутки (`0 3 * * *` UTC) + прогон при старте.
- Для каждого extract из `TileServer:Extracts``data/extracts.json`): скачивание `.osm.pbf` с Geofabrik (If-None-Match / 304), сборка OpenMapTiles MBTiles через `planetiler-openmaptiles` (Java 21+).
- По умолчанию один источник: `central-fed-district`. Можно добавлять сколько угодно регионов — воркер проходит все по очереди.
- `GET /api/v1/tiles/{source}/{z}/{x}/{y}.pbf` — MapLibre XYZ, TMS Y-flip, gzip как в MBTiles.
- `GET /api/v1/styles/{name}?source=...` — стили по имени; `PUT` и файлы `data/styles/*.json`.
- Демо: `GET /` MapLibre GL, выбор источника/стиля, статус воркера.
- Сборка тайлов не на чистом C#: генерация схемы OpenMapTiles — Planetiler. C# оркестрирует download/build/serve.
## Как проверялось
- `dotnet build` / 9 unit-тестов — ок.
- Локальный прогон API: демо 200, стили osm-bright/dark/positron, TileJSON, 204 на отсутствующий тайл, PUT второго extract, 404 на неизвестный стиль.
- Браузерных MCP в сессии не было — проверка через HTTP.
## Важно для следующего запуска
- Без Java 21 воркер скачает PBF, но не соберёт тайлы.
- Первая сборка ЦФО — часы и много диска/RAM (`TileServer:JvmMaxHeap`).
- `TileServer:Sync:RunOnStartup` по умолчанию `true`.