feat(proj): init
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user