Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mapsme/borders
A set of scripts and a web interface for editing borders
https://github.com/mapsme/borders
Last synced: about 2 months ago
JSON representation
A set of scripts and a web interface for editing borders
- Host: GitHub
- URL: https://github.com/mapsme/borders
- Owner: mapsme
- Created: 2015-11-18T15:24:54.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2021-09-02T00:08:34.000Z (over 3 years ago)
- Last Synced: 2024-03-26T02:57:31.099Z (9 months ago)
- Language: Python
- Size: 692 KB
- Stars: 2
- Watchers: 23
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Набор скриптов и веб-интерфейс для правки границ
В этих каталогах лежит набор инструментов для редактирования набора границ
в формате [Osmosis Poly](http://wiki.openstreetmap.org/wiki/Osmosis/Polygon_Filter_File_Format).## Развёртывание в Docker
Самое простое — запустить систему в 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.