12 | Документация

Подготовка проекта в QGIS

Для публикации сервиса геокодирования в CoGIS Server необходимо создать картографический проект с данными геокодера.
Для этого необходимо добавить в картографический проект слои зданий и улиц (или с другими данными), созданные на предыдущем этапе (см. Рисунок 188 ).
Рисунок 188 - Добавление слоев для геокодера в картографический проект QGIS
Далее для каждого слоя необходимо задать наличие и правильный порядок полей. Для этого из контекстного меню слоя нужно открыть таблицу атрибутов (см. Рисунок 189 ).
Рисунок 189 - Таблица атрибутов слоя
Далее в таблице атрибутов из контекстного меню для заголовков колонок необходимо выбрать пункт Organize Columns (см. Рисунок 190 ).
Рисунок 190 - Настройка состава полей
И затем в появившемся окне Organize Table columns необходимо оставить включёнными только поле primary_key и те поля, которые будут использованы в геокодировании (см. Рисунок 191 ), нажать ОК.
Рисунок 191 - Выбор полей слоя для использования в сервисе геокодирования
Таким образом в таблице будет настроен порядок полей. Эти действия необходимо повторить для всех остальных слоёв.
Затем нужно задать каждому слою поле, которое будет использоваться в качестве вывода для поиска ( Display Field ). Для этого в свойствах слоя необходимо выбрать пункт Вывод и задать в нем соответствующее поле (см. Рисунок 192 ).
Рисунок 192 - Настройка поля для вывода
Если необходимо сделать вывод по нескольким полям, то можно задать Display expression . Например для слоя зданий выражение может выглядеть следующим образом : concat("postcode", ' ', "city",' ',"street",' ',"number") , см. Рисунок 193 .
Рисунок 193 - Вывод по нескольким полям
Примечание: поддерживаются только следующие функции "sin", "cos", "tan", "atan", "abs", "asin", "acos", "log", "log10", "cailing", "floor", "round", "exp", "sqrt", "ltrim", "rtrim", "substr", "substring", "concat", "lower", "upper", "pow", "power", "andbits", "len", "length", "coalesce", "mod", "scale_exp", "scale_linear", "to_string", "tostring", "var", "min", "max", "now", "interval", "date_part","format_date"
По умолчанию freetext-поиск происходит по полю, указанному в параметре Отображаемое имя ( Display Field ).
Если там указано выражение, freetext-поиск работать не будет. В таком случае необходимо отдельным свойством в настройках слоя указать поле, по которому выполнять поиск, см. далее.
Дополнительные параметры для тонкой настройки геокодирования:
  • elitegis_geocode_search_fields - cписок полей для поиска.
По умолчанию free-text поиск выполняется по полю, указанному в Display Field. Если там указано выражение, free-text работать не будет. В таком случае необходимо данным свойством указать поля, по которым будет производиться поиск (т. е. которые были указаны при создании freetext-индекса и в том же порядке.
  • elitegis_geocode_replacement_exact - строка из набора пар по формуле "<Что_заменить>=<На_что_заменить>;" для замены символов или групп символов в поисковом запросе на то, как они встречаются в атрибутах.
  • По умолчанию ничего не меняется. Используется до обращения к поиску в базе данных, чтобы убрать особые символы (точки и запятые), развернуть слэш под данные и прочие "точные" замены символа или набора символов, где бы они ни встретились в исходной строке.
  • Например, ‘\=/;,= ;.= ;’ - запись обозначает, что в поисковом запросе обратные слеши будут заменены на прямые, запятые и точки будут заменены на пробелы (пары записываются без пробелов, точка с запятой используется как разделитель между парами для замены).
  • elitegis_geocode_replacement_words - строка из набора пар по формуле "<Что_заменить>=<На_что_заменить>;" для замены слов или части слов в поисковом запросе на то, как они встречаются в атрибутах.
По умолчанию ничего не меняется. Используется до обращения к поиску в базе данных, чтобы заменить сокращённый вариант "ул" на "улица", вариант "м-ль" на "магистраль" и т. д., чтобы запрос соответствовал данным и работал fulltext-поиск.
Например, ‘б-р=бульвар;ж/м=жилмассив;м-ль=магистраль;’
  • elitegis_geocode_score - минимальный показатель, который будет использован при поиске через fulltext-индекс, целочисленное число, по умолчанию 100.
  • elitegis_geocode_score_bonuses - возможность повысить показатель сравнением значений в полях найденного кандидата с искомой строкой (без учета регистра), строка из набора пар "ИМЯПОЛЯ=БОНУС_ЗА_СОДЕРЖИТ_В_СЛОВЕ/БОНУС_ЗА_СЛОВО_НАЧИНАЕТСЯ_С/БОНУС_ЗА_СОВПАДЕНИЕ_СЛОВ;"
    • elitegis_geocode_coordinates_search - параметр указывается у специального (одного или нескольких) полигональных слоев, которые через геометрию своих объектов, будут задавать область поиска по координатам.
Задайте одно из значений:
  • full_search (значение по умолчанию);
  • Если в строке поиска распознаны координаты, поиск осуществляется по распознанным координатам, иначе - запустится обычный поиск по строке.
  • Если по распознанным координатам объект не найден, после завершения поиска по координатам запустится обычный поиск по строке.
  • coordinate_search_only .
Поиск осуществляется только по распознанным координатам.
Если значение параметра не задано, то используется значение по умолчанию - full_search .
Параметр может быть указан как слою, так и всему проекту. В случае всего проекта поиск по координатам будет осуществляться в пределах всего мира.
  • elitegis_geocode_coordinates_spatial_reference - через параметр определяется система координат для поиска по координатам.
По умолчанию (если параметр не задан) это система координат проекта.
Систему координат можно указать в форматах WKID , WKT или proj4 .
Данные свойства указываются на вкладке Переменные (см. Рисунок 194 ).
Рисунок 194 - Настройка поля для поиска
Таблица 22 - Пример значений для свойств геокодера
Параметр
Пример значения
elitegis_geocode_replacement_exact
\=/;,= ;.= ;
elitegis_geocode_replacement_words
б-р=бульвар;ж/м=жилмассив;м-ль=магистраль;пер=переулок;пл=площадь;пос=поселок;пр-д=проезд;пр-т=проспект;сп=спуск;ул=улица;ш=шоссе;
elitegis_geocode_score
65
elitegis_geocode_score_bonuses
street_type=0/0/5;street_name=0/5/10;house_number=0/0/20;
elitegis_geocode_search_fields
district_name,full_address
elitegis_geocode_coordinates_search
full_search
Далее необходимо сохранить созданный QGS-проект (см. Рисунок 195 ).
Рисунок 195 - Сохранение QGS-проекта
Подготовка данных и проекта для публикации сервиса геокодирования завершена.