Найди участкового

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/openpolice.html


Описание нескольких инструментов для конкурса

Эта статья является описанием инструментов подготовленных в качестве заявки для участия в конкурсе "Открытая полиция", проводившемся в мае 2013 НП "Информационная культура". Результаты конкурса: мобильное приложение - 1-е место, веб-приложение - 2-е место.

Задача: создать удобные инструменты для быстрого поиска ближайшего участкового.

Разработчики: Дмитрий Барышников, Иван Ковалев, Максим Дубинин (NextGIS).

Разработанные инструменты на момент публикации являются полностью функциональными, но их следует считать скорее прототипами, иллюстрирующими принципы и идеи в них заложенные, чем окончательными версиями. Разработчики не несут ответственности за их использование. Приложения пока работают только в границах г. Москвы.

Nextgis.png Создание открытого ПО ГИС и реализация проектов

Эти разработки стали возможны благодаря тому, что данные об участковых раскрываются на сайте 112.ru.

Разработанный набор инструментов состоит из трех частей:

  1. Инструменты подготовки данных и собственно данные
  2. Мобильное приложение для обнаружения ближайших участковых по координатам (УСТАНОВИТЬ).
  3. Веб-приложение для визуализации "зон ответственности" участковых и поиска по адресу (ЗАПУСТИТЬ).

или читайте дальше подробнее.

Подготовка данных и результирующие базы данных

База данных предоставленная организаторами конкурса нам не подошла, так как не содержала важной части данных - адресной информации о сфере ответственности участковых.

Для районирования данных 112.ru использует административно-территориальное деление и коды ОКАТО. Классификатор этих кодов на сайте источника данных устарел и поэтому свежий классификатор использоваться не может. Поэтому сначала получается копия классификатора.

Далее поготовка данных заключается в получении данных с 112.ru в структурированном табличном виде для каждого интересующего кода ОКАТО, данные разбиваются на две таблицы, сами участковые и их сфера ответственности - таблица с перечнем адресов. Эта таблица в дальнейшем проходит процедуру геокодирования.

Геокодирование производится с помощью геокодера http://openstreetmap.ru, для геокодирование может использоваться модуль для свободной ГИС QGIS - Ru-geocoder (Автор: Евгений Никулин).


Производные базы данных (описание см. ниже) можно скачать по: ссылке

Москва

  • RU-MOW-loc - база адресов, 42127 шт. (CSV)
  • RU-MOW-loc_geo - геокодированная база адресов, 42127 шт. (ESRI Shape)
  • RU-MOW-loc_geo_building - выборка домов из OpenStreetMap по геокодированной базе адресов, 14821 шт. (ESRI Shape)
  • RU-MOW-man - база участковых 2592 шт. (CSV)

РФ целиком

  • RU-RU_loc - база адресов, не геокодирована, 371738 шт. (CSV)
  • RU-RU_man - база участковых, не геокодирована, 39175 шт. (CSV)
  • RU-RU_photo - фотографии всех участковых РФ - 39641 шт. (JPG)
  • RU-RU_mvd - база организаций, геокодированы только адреса по Москве - 19051 шт. (CSV)

Исходный код инструментов: Github

Обнаружение ближайших участковых по координатам на улице

Если вы находитесь на свежем воздухе и у вас устройство на базе Android (версия 3.0 и выше) с модулем GPS, то для обнаружения ближайшего от вас участкового вы можете использовать приложение "Найти участкового". Принцип работы отличается от аналогов в том, что ничего никуда вводить не нужно, определение ближайшего участкового происходит полностью автоматически и без необходимости интернет-подключения.

Google Play, Скачать приложение в виде apk-файла

Как это работает:

  1. Скачиваем и устанавливаем приложение
  2. После запуска приложения необходимо скачать базу данных по участковым и, если хотите, базу данных с их фотографиями. Поэтому первый запуск рекомендуется делать вблизи доступного соединения с интернет. В дальнейшем соединения с интернет не нужно.
  3. Нажмите на кнопку "Найти участкового инспектора" - устройство автоматически попытается определить ваши координаты и затем:
    1. найти все дома указанные в сфере ответственности участковых в радиусе 1 км от вашего местоположения
    2. определить расстояния до всех домов
    3. создать список участковых в радиусе и отсортировать их по близости к вам
  4. Если нажать на полицейского в результирующей таблице, телефон сразу начнет ему звонить.

Openpolice-mobile-02.png Openpolice-mobile-03.png

Исходный код приложения: Github

Поиск участковых по карте

Сидя дома в удобном кресле, удобно посмотреть кто охраняет наш покой с помощью веб-приложения "Найди участкового".

Как это работает:

  1. Запускаем браузер и переходим по ссылке
  2. Вводим адрес (можно подождать секунду появления автодополнения) или находим нужный участок
  3. На карте разными цветами показаны здания за которые есть ответственные участковые, т.е. эти здания указаны в их зоне ответственности.
  4. На здания можно щелкнуть, чтобы узнать имя, должность, звание и телефон участкового. Также доступна ссылка на страницу Правоохранительного портала Российской Федерации где представлена карточка выбранного участкового.
  5. Одновременно показывается информация по разным участковым, разными цветами. Ключ к цветам показывается в легенде, расположенной в верхнем левом углу карты.
  6. Карту нельзя уменьшать меньше определенного масштаба (17-й уровень).
  7. На карте также показываются точки организаций - органов охраны правопорядка.

Запустить приложение

Op-screen-3.jpg


Openpolice-web-05.png

Исходный код приложения: Github

Проблемы исходных данных

  1. Данные плохо структурированы
  2. Для поиска региона используются устаревшие коды ОКАТО
  3. В исходной базе данных отсутствуют многочисленные дома
  4. Большое количество ошибок и опечаток в исходных данных мешающих их полноценному парсингу

Недостатки представленных разработок

Качество обнаружения и определения сферы ответственности участкового целиком зависит от качества основы OpenStreetMap используемой для геокодирования адресов указанных в сфере ответственности. Рисуйте карты!

Следующие недоработки в представленном ПО было бы неплохо исправить в будущем.

  1. При парсинге не учитываются улицы указанные целиком, без домов.
  2. С улиц указанных целиком в базу данных результатов должны попадать все дома.
  3. При парсинге не обрабатываются диапазоны номеров домов (например: 1-24)
  4. Диапазон домов должен превращаться в набор домов
  5. При парсинге не обрабатываются совсем плохо структурированные данные (пример, полный список ошибочных файлов)
  6. Веб-приложение не оптимизировано для просмотра на браузерах мобильных устройств

Код приложений парсинга, геокодирования и визуализации информации открыт (см. выше ссылки на репозитории на GitHub), мы принимаем пул реквесты.