В этих каталогах лежит набор инструментов для редактирования набора границ в формате Osmosis Poly.
Самое простое — запустить систему в Docker-контейнерах.
- Должен быть установлен docker https://docs.docker.com/engine/install/
- и docker-compose https://docs.docker.com/compose/install/
- Для всей планеты во время сборки необходимо ~200 Гб дискового пространства (после сборки — 30 Гб), разворачивание может длиться около суток.
В файле docker-compose.yaml нужно выставить желаемый порт, на котором будет работать веб-интерфейс (сейчас это число 8081 в строке "8081:80"), и URL с файлом планеты в переменной PLANET_URL. Переменные PLANET_URL_<suffix> не используются, это просто примеры. Для тестирования советуется подставить в PLANET_URL небольшой файл, тогда вся сборка займёт несколько минут.
Для работы требуется база данных PostgreSQL + PostGIS, инициализированная
скриптами из каталога db. Последовательность выполнение скриптов и необходимые
переменные окружения см. в db/Dockerfile.db и docker-compose.yaml.
Для оценки размера файла MWM нужно заполнить
таблицу tiles из файла планеты (см. скрипты db/*tiles*.sh).
Также для обновления и замены границ из OpenStreetMap желательно импортировать
таблицу osm_borders — см. db/prepare_borders.sh и db/load_borders.sh.
Начальный набор границ для редактирования можно либо загрузить скриптом
scripts/poly2postgis.py, либо скопировать из таблицы osm_borders по,
например, admin_level=2.
После редактирования набор файлов poly создаст скрипт scripts/export_poly.py
или ссылка Скачать poly - всё в веб-интерфейсе.
Два скрипта в каталоге server должны работать постоянно на фоне.
-
borders-api.py— сервер на Flask, работает на порту 5000. К нему обращается веб-интерфейс через XHR-запросы. В начале скрипта проверьте названия таблиц и флаг READONLY. -
borders-daemon.py— непрерывно проверяет таблицуbordersна пустые значения в столбце количества данных, и найдя их, пересчитывает. Запустите, если нужна оценка размера MWM.
Файлы в каталоге web/app/static не требуют каких-либо интерпретаторов или
выделенных серверов: просто откройте index.html в браузере. На карте
нарисованы границы, по клику на границу панель справа наполнится кнопками.
Оттуда можно разрезать и склеивать границы, переименовывать их, заменять и
дополнять из таблицы osm_borders, а также экспортировать в JOSM для сложных
модификаций.
Написал Илья Зверев для MAPS.ME, опубликовано под лицензией MIT.