gnss/README.md

26 lines
1.8 KiB
Markdown
Raw 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.

# 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 — работа с временем/таймзонами