No description
Find a file
2025-12-23 11:58:36 +05:00
Docs build backend in bin. choose several maps for action. 2025-12-22 17:13:40 +05:00
frontend fix tilesets for vectors map 2025-12-23 11:58:36 +05:00
gnss fix tilesets for vectors map 2025-12-23 11:58:36 +05:00
.gitignore Update models tiles and directories for source 2025-12-19 11:13:52 +05:00
poetry.lock build backend in bin. choose several maps for action. 2025-12-22 17:13:40 +05:00
pyproject.toml build backend in bin. choose several maps for action. 2025-12-22 17:13:40 +05:00
README.md Add import TMS tiles (directory/zip) and tif formatter 2025-12-17 17:09:44 +05:00

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