/vakhtyor

Вахтёр OpenStreetMap

Primary LanguagePerl

Вахтёр OpenStreetMap

Этот скрипт следит за правками OSM и вычленяет из них создание домов (building=*). Координаты этих домов проверяются по Bing Maps, и если там нет детальных снимков (14-го масштаба), то дом вместе с информацией о создавшем его пользователей добавляется в базу. База состоит всего из двух таблиц: кэш тайлов Bing и список подозрительных случаев. Один случай -- это рисование более N домов одним пользователем в день.

Более подробные описания можно прочитать в штосме и на сайте проекта.

Установка скрипта

Скрипту требуется база MySQL с правами на создание таблиц. Настройки нужно прописать дважды: в vakhtyor.pl и config.php. Далее перловый скрипт можно добавить в crontab и запускать раз в несколько часов, например, с такими параметрами:

/home/user/vakhtyor.pl -d maindb -u user -p password -v -l http://planet.openstreetmap.org/replication/hour 2>>/home/user/vakhtyor.log

Из других интересных настроек в perl-файле обратите внимание на $bbox (по умолчанию он не очень большой) и @countries, куда записаны коды стран, территории которых наблюдаются.

Установка веб-интерфейса

Прежде всего, вам понадобится модуль OAuth для PHP (и сам PHP версии не ниже 5.3, разумеется). Ставится он просто, но нужны рутовые права:

sudo pecl download oauth
sudo pecl install oauth

Затем вам напишут, что нужно добавить extension=oauth.so в php.ini. Подробнее читайте на сайте PHP.

Все настройки хранятся в отдельном файле, config.php. Вам понадобится свой токен от OSM API, для его получения залогиньтесь на сайте OSM и зайдите сюда. Там нужно заполнить название приложения, его основной адрес и адрес, куда перебросят пользователя после логина. Последний должен выглядеть вот так:

http://вашхост/чтонибудь/index.php?action=callback

Всё, можно заходить и смотреть. При добавлении комментариев скрипт пишет лог, для его создания нужно дать права на каталог 0777, либо сказать touch vakhtyor.log и сделать chmod 0666 vakhtyor.log. Не обязательно хранить его в том же каталоге, можно переместить куда-нибудь в другое место (поправив LOG_FILE).

Лицензия и всё такое

Весь этот ужас написал Илья Зверев, он с радостью раздаёт исходники под лучшей в мире лицензией WTFPL. И он будет рад пулл-реквестам с устранением уязвимостей, которых тут должно быть до фига.