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`).
|
|
|
|
|
|
|
|
|
|
|
|
## Запуск
|
2025-12-12 15:34:27 +05:00
|
|
|
|
- `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`
|
2025-12-12 15:34:27 +05:00
|
|
|
|
|
|
|
|
|
|
## Нарезка тайлов (GDAL)
|
|
|
|
|
|
- Требуется установленный `gdal2tiles` (например, пакет `gdal-bin` в apt).
|
|
|
|
|
|
- Нарезка через API `POST /tiles/slice` или вызов сервиса `TileService.slice_to_tiles` (внутри backend).
|
|
|
|
|
|
- Поддерживаются входы, которые понимает GDAL (GeoTIFF, JPEG, MBTiles и др.). Нарезка идёт в профиле Web Mercator (XYZ) по умолчанию.
|
2025-12-10 16:48:19 +05:00
|
|
|
|
|
2025-12-16 16:53:28 +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 — работа с временем/таймзонами
|