gnss/README.md

28 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2025-12-10 16:48:19 +05:00
# GNSS Backend (FastAPI + WebSocket)
## Установка
2025-12-17 15:04:01 +05:00
- Убедитесь, что установлен Python 3.13+ и Poetry.
2025-12-10 16:48:19 +05:00
- Выполните `poetry install` (ставит зависимости и проект как пакет `gnss`).
## Запуск
- `poetry run uvicorn gnss.main:app --host 0.0.0.0 --port 8000`
2025-12-10 16:48:19 +05:00
- Тайлы ожидаются по пути `gnss/tiles/{zoom}/{x}/{y}.png` (можно положить заглушку `placeholder.png` в эту же директорию).
2025-12-17 15:04:01 +05:00
- Полноценное API всего проекта можно изучить при переходе по адресу `localhost:8000/docs` или `localhost:8000/redoc`
## Нарезка тайлов (GDAL)
- Требуется установленный `gdal2tiles` (например, пакет `gdal-bin` в apt).
- Нарезка через API `POST /tiles/slice` или вызов сервиса `TileService.slice_to_tiles` (внутри backend).
- Поддерживаются входы, которые понимает GDAL (GeoTIFF, JPEG, MBTiles и др.). Нарезка идёт в профиле Web Mercator (XYZ) по умолчанию.
- Для заранее подготовленных TMS/XYZ наборов (папка или zip/tar архив) укажите `source_format=tms|xyz` — они будут скопированы без запуска gdal2tiles.
2025-12-10 16:48:19 +05:00
## Фронтенд
- В `frontend` лежит Tauri/React приложение для проверки бекенда (карта Leaflet, WebSocket трек, форма для запуска нарезки тайлов).
- Запуск: `cd frontend && pnpm install && pnpm dev` (или `pnpm tauri dev` при установленном Rust/Tauri). Бекенд должен слушать `http://localhost:8000`.
2025-12-10 16:48:19 +05:00
## Ключевые зависимости
- fastapi — REST и WebSocket
- uvicorn[standard] — ASGI-сервер
- pyserial — чтение GNSS по последовательному порту
- pynmea2 — парсинг NMEA
- python-dateutil — работа с временем/таймзонами