5df38bad2d
Closes TG-4
6.0 KiB
6.0 KiB
Работа в офлайн режиме
Приложение настроено для работы без подключения к интернету. Все необходимые файлы (библиотека Leaflet и тайлы карты) хранятся локально.
Структура файлов
static/leaflet/- библиотека Leaflet (CSS, JS и изображения)static/xterm/- терминал в браузере (вкладка «Консоль»), без CDN
(не удаляйте комментарийsourceMappingURLчерезsplitlines()в Python — вxterm.min.jsесть символ U+0085, из‑за него строка «ломается» и появляется SyntaxError в браузере)static/tiles/- тайлы карты OpenStreetMap
Скачивание тайлов карты
Для работы в офлайн режиме необходимо предварительно скачать тайлы карты для нужной области.
Использование скрипта download_tiles.py
# Скачать тайлы для области Москвы (по умолчанию)
python download_tiles.py
# Скачать тайлы для конкретной области
python download_tiles.py --bounds 55.5,37.5,56.0,38.0 --min-zoom 5 --max-zoom 12
# Скачать тайлы вокруг центра с радиусом
python download_tiles.py --center 55.75,37.62,50 --min-zoom 5 --max-zoom 12
# Указать выходную папку
python download_tiles.py --output static/tiles --min-zoom 5 --max-zoom 12
Параметры скрипта
--min-zoom- минимальный уровень масштабирования (по умолчанию: 5)--max-zoom- максимальный уровень масштабирования (по умолчанию: 12)--bounds- границы области в формате:min_lat,min_lon,max_lat,max_lon--center- центр области и радиус в формате:lat,lon,radius_km--output- выходная папка для тайлов (по умолчанию:static/tiles)--delay- задержка между запросами в секундах (по умолчанию: 1.0, минимум рекомендуется 1.0)
Примеры использования
# Москва и окрестности, уровни 5-12
python download_tiles.py --bounds 55.5,37.3,56.0,37.9 --min-zoom 5 --max-zoom 12
# Санкт-Петербург, уровни 5-14
python download_tiles.py --center 59.934,30.306,30 --min-zoom 5 --max-zoom 14
# Большая область (например, весь регион), уровни 3-10
python download_tiles.py --bounds 50.0,20.0,60.0,40.0 --min-zoom 3 --max-zoom 10
Рекомендации по уровням масштабирования
- Уровни 0-5: Весь мир / континенты (очень мало тайлов, быстро скачивается)
- Уровни 5-10: Регионы / крупные города (умеренное количество тайлов)
- Уровни 10-14: Города / районы (много тайлов, может занять время)
- Уровни 14-19: Детальные карты (очень много тайлов, долгое скачивание)
Важно: Чем больше уровней масштабирования и область, тем больше тайлов нужно скачать. Для начала рекомендуется использовать уровни 5-12 для нужной области.
Запуск приложения
После скачивания тайлов приложение будет работать полностью офлайн:
python main.py
Приложение будет доступно по адресу http://localhost:8000
Примечания
- Если тайл не найден локально, карта покажет пустое место (серый квадрат)
- Для полного покрытия области рекомендуется скачать тайлы заранее
- Размер тайлов зависит от области и уровней масштабирования (может быть от нескольких МБ до нескольких ГБ)
Политика использования тайлов OpenStreetMap
Скрипт настроен для соблюдения политики использования тайлов OpenStreetMap:
- ✅ Используется корректный User-Agent в заголовках запросов
- ✅ Соблюдается минимальная задержка 1 секунда между запросами
- ✅ Обрабатываются ошибки 429 (Too Many Requests) с автоматическим увеличением задержки
- ✅ Используются разные поддомены для распределения нагрузки
Важно: Если вы получаете ошибку "Access blocked", убедитесь, что:
- Используется задержка не менее 1 секунды (
--delay 1.0или больше) - Не запускаете несколько экземпляров скрипта одновременно
- Не скачиваете слишком много тайлов за короткое время
Для больших областей рекомендуется:
- Использовать задержку 1.5-2 секунды:
--delay 1.5 - Скачивать тайлы в несколько этапов (разные уровни масштабирования отдельно)
- Делать перерывы между сессиями скачивания