No description
| Docs | ||
| frontend | ||
| gnss | ||
| .gitignore | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
GNSS Backend (FastAPI + WebSocket)
Установка
- Убедитесь, что установлен Python 3.13+ и 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 всего проекта можно изучить при переходе по адресу
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.
Фронтенд
- В
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 — работа с временем/таймзонами