gnss/README.md

1.8 KiB
Raw Blame History

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