1.8 KiB
1.8 KiB
GNSS Backend (FastAPI + WebSocket)
Установка
- Убедитесь, что установлен Python 3.11+ и Poetry.
- Выполните
poetry install(ставит зависимости и проект как пакетgnss).
Запуск
poetry run uvicorn gnss.main:app --host 0.0.0.0 --port 8000- Тайлы ожидаются по пути
gnss/tiles/{zoom}/{x}/{y}.png(можно положить заглушкуplaceholder.pngв эту же директорию). - API для нарезки:
POST /tiles/sliceс JSON{ "source": "/path/input.tif", "destination": "/path/to/tiles", "min_zoom": 10, "max_zoom": 16 }.
Нарезка тайлов (GDAL)
- Требуется установленный
gdal2tiles(например, пакетgdal-binв apt). - Нарезка через API
POST /tiles/sliceили вызов сервисаTileService.slice_to_tiles(внутри backend). - Поддерживаются входы, которые понимает GDAL (GeoTIFF, JPEG, MBTiles и др.). Нарезка идёт в профиле Web Mercator (XYZ) по умолчанию.
Фронтенд
- В
frontendлежит Tauri/React приложение для проверки бекенда (карта Leaflet, WebSocket трек, форма для запуска нарезки тайлов). - Запуск:
cd frontend && pnpm install && pnpm dev(илиpnpm tauri devпри установленном Rust/Tauri). Бекенд должен слушатьhttp://localhost:8000.
Ключевые зависимости
- fastapi — REST и WebSocket
- uvicorn[standard] — ASGI-сервер
- pyserial — чтение GNSS по последовательному порту
- pynmea2 — парсинг NMEA
- python-dateutil — работа с временем/таймзонами