{"id":19369260,"url":"https://github.com/mapsme/borders","last_synced_at":"2025-04-23T15:31:31.315Z","repository":{"id":51150112,"uuid":"46427553","full_name":"mapsme/borders","owner":"mapsme","description":"A set of scripts and a web interface for editing borders","archived":false,"fork":false,"pushed_at":"2021-09-02T00:08:34.000Z","size":709,"stargazers_count":2,"open_issues_count":3,"forks_count":9,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-04-02T16:53:47.685Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mapsme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-18T15:24:54.000Z","updated_at":"2021-07-26T16:59:56.000Z","dependencies_parsed_at":"2022-09-04T19:32:29.522Z","dependency_job_id":null,"html_url":"https://github.com/mapsme/borders","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapsme%2Fborders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapsme%2Fborders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapsme%2Fborders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapsme%2Fborders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mapsme","download_url":"https://codeload.github.com/mapsme/borders/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250460398,"owners_count":21434245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T08:10:17.503Z","updated_at":"2025-04-23T15:31:30.974Z","avatar_url":"https://github.com/mapsme.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Набор скриптов и веб-интерфейс для правки границ\n\nВ этих каталогах лежит набор инструментов для редактирования набора границ\nв формате [Osmosis Poly](http://wiki.openstreetmap.org/wiki/Osmosis/Polygon_Filter_File_Format).\n\n## Развёртывание в Docker\n\nСамое простое — запустить систему в Docker-контейнерах.\n\n#### Предварительные требования\n* Должен быть установлен docker https://docs.docker.com/engine/install/\n* и docker-compose https://docs.docker.com/compose/install/\n* Для всей планеты во время сборки необходимо ~200 Гб дискового пространства\n(после сборки — 30 Гб), разворачивание может длиться около суток.\n\n#### Настройка сборки\nВ файле docker-compose.yaml нужно выставить желаемый порт, на котором будет\nработать веб-интерфейс (сейчас это число 8081 в строке \"8081:80\"),\nи URL с файлом планеты в переменной PLANET_URL. Переменные PLANET_URL_\u0026lt;suffix\u0026gt;\nне используются, это просто примеры. Для тестирования советуется подставить\nв PLANET_URL небольшой файл, тогда вся сборка займёт несколько минут.\n \n\n## Развёртывание вручную\nДля работы требуется база данных PostgreSQL + PostGIS, инициализированная\nскриптами из каталога `db`. Последовательность выполнение скриптов и необходимые\nпеременные окружения см. в `db/Dockerfile.db` и `docker-compose.yaml`.\nДля оценки размера файла MWM нужно заполнить\nтаблицу `tiles` из файла планеты (см. скрипты `db/*tiles*.sh`).\n\nТакже для обновления и замены границ из OpenStreetMap желательно импортировать\nтаблицу `osm_borders` — см. `db/prepare_borders.sh` и `db/load_borders.sh`.\nНачальный набор границ для редактирования можно либо загрузить скриптом\n`scripts/poly2postgis.py`, либо скопировать из таблицы `osm_borders` по,\nнапример, `admin_level=2`.\n\nПосле редактирования набор файлов `poly` создаст скрипт `scripts/export_poly.py`\nили ссылка *Скачать poly - всё* в веб-интерфейсе.\n\n#### Серверная часть\n\nДва скрипта в каталоге `server` должны работать постоянно на фоне.\n\n* `borders-api.py` — сервер на Flask, работает на порту 5000. К нему обращается\n    веб-интерфейс через XHR-запросы. В начале скрипта проверьте названия таблиц\n    и флаг READONLY.\n\n* `borders-daemon.py` — непрерывно проверяет таблицу `borders` на пустые значения\n    в столбце количества данных, и найдя их, пересчитывает. Запустите, если нужна\n    оценка размера MWM.\n\n#### Веб-интерфейс\n\nФайлы в каталоге `web/app/static` не требуют каких-либо интерпретаторов или\nвыделенных серверов: просто откройте `index.html` в браузере. На карте\nнарисованы границы, по клику на границу панель справа наполнится кнопками.\nОттуда можно разрезать и склеивать границы, переименовывать их, заменять и\nдополнять из таблицы `osm_borders`, а также экспортировать в JOSM для сложных\nмодификаций.\n\n## Автор и лицензия\n\nНаписал Илья Зверев для MAPS.ME, опубликовано под лицензией MIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapsme%2Fborders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmapsme%2Fborders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapsme%2Fborders/lists"}