Skip to content

CupIvan/validator

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
i
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

  • Клонируем репозиторий
  • Для удобства работы создаем симлинки в ~/bin/ для файлов ./common/{osm_validate,osm_test_validator}

Для запуска валидации даём команду osm_validate, где указываем валидатор и регион:

osm_validate sberbank RU-MOS

Создание своего валидатора

Допустим мы хотим создать новый валидатор с именем mbank:

  • Создаем файл в папке parser с именем валидатора: mbank.php

  • В нём должен быть класс mbank, унаследованный от Validator

  • В классе задаём домен $domain, откуда будут скачиваться страницы

  • Задаём список $url в формате регион => url

  • В $fields прописываем поля, которые собираемся извлекать со страниц, если задано какое-то значение, то оно считается константой для всех объектов

  • Устанавливаем $filter - фильтр объектов из базы OSM, это массив - первый параметр тег=значение, второй - фильтр по подстроке

  • Создаем функцию parse, в которую передается первым параметром текст, в этой функции нужно распарсить страницу, создать объекты:

      $o = $this->makeObject($obj); // отфильтровываем нужные поля у объекта
      $this->addObject($o);         // добавляем в базу для последующего анализа
    

Проверка валидатора

Для проверки валидатора запускаем osm_test_validator:

osm_test_validator sberbank RU-MOS

В случае успеха будет выведено кол-во объектов и первый объект в списке. Для вывода всех объектов, добавьте ключ --all. Ключ --all удобно использовать совместно с grep, чтобы отфильтровать только определенные поля и визуально оценить правильность работы:

osm_test_validator sberbank RU-MOS --all | grep opening_hours

Комментарии

  1. При валидации создаются gzip сжатые Javascript файлы в папке data. В файлах регион/валидатор.js.gz находятся данные из OSM, в файлах валидатор/регион.js.gz находятся реальные данные с сайтов.
  2. Для распаковки всех *.js.gz можно запустить common/ungzipOsmArchives, предварительно поправив в нем путь к валидатору.

About

Универсальный валидатор OSM объектов

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •