Комбинирование нескольких слоев данных в одном локаторе

Инструмент Создать локатор позволяет сочетать несколько слоев базовых данных и ролей в одном локаторе, чтобы выполнять поиск для нескольких типов местоположений одновременно.

Мультиролевые локаторы

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

Подсказка:

Если у вас имеется несколько слоев данных одного типа, которые могут быть связаны с одной ролью, скомбинируйте слои данных с помощью слияния или соединения данных в одном слое и используйте этот слой как слой базовых данных для мультиролевого локатора.

Минимизация дублирующихся результатов геокодирования в мультиролевых локаторах

Инструмент Создать локатор разработан для получения максимальной информации из базовых данных, используемых для построения локатора. По этой причине вы можете построить мультиролевой локатор, который будет убирать дублирующиеся данные при создании локатора для минимизации дублирующейся геометрии или пропуска наименее точных кандидатов в предположениях и результатах геокодирования. Такой процесс дедупликации помогает сократить размер локатора и улучшить его производительность, а также сортировку кандидатов. У составного локатора нет таких преимуществ, и он возвращает дублирующихся кандидатов для одного местоположения.

PointAddress и базовые данные улиц

Например, используя данные вверху, создан составной локатор из двух отдельных локаторов на основании ролей Точки адреса и Адреса улиц, названный SanDiegoComposite. На основании ролей Точки адреса и Адреса улиц создан мультиролевой локатор с ROADSEGID из базовых данных, сопоставленным с полем локатора Street Join ID для обеих ролей, названный SanDiegoMultiroleZip. Результат поиска 15815 Cope Rd, 92065 на панели Найти местоположение показан ниже.

Результаты составного и мультиролевого локаторов

Восстановление отсутствующих атрибутов из базовых данных других ролей

Мультиролевые локаторы позволяют восстанавливать отсутствующие атрибуты, не доступные в базовых данных, которые используются для каждой роли, указанной в локаторе. Два метода инструмента Создать локатор, применяемые для восстановления отсутствующих атрибутов при построении мультиролевого локатора, – это использование ID для связи атрибутов между различными ролями и пространственное связывание административных областей при помощи полигональных данных.

Использование полей ID соединения для связывания одинаковых атрибутов в различных ролях

Создание мультиролевого локатора позволяет восстанавливать отсутствующие атрибуты между слоями базовых данных и ролями для объектов, имеющих одинаковый ID. Эта функциональность возникает, когда соответствующее значение поля отсутствует в базовых данных для определенного ID в одной роли, но имеется для такого же ID в базовых данных другой роли. Предполагается, что одно и то же значение одного и того же идентификатора присваивается одному и тому же объекту во всех базовых данных. В данных ниже, которые используются для роли Точки адреса, для Yosemite Blvd отсутствует название города, поэтому локатор не может вернуть сопоставление или включить название города в выходные данные для этой записи.

Данные PointAddress с полем CityID, содержащим ID для соединения с данными City

Однако если у вас есть базовые данные для границ города, содержащие соответствующее значение города для того же CityID, и вы добавляете роль City в локатор, инструмент Создать локатор будет использовать идентичные значения CityID в базовых данных City (Город) и Point Address (Точки адреса) для восстановления Waterford в записи Точки адреса.

Данные City с полем ID соединения для присоединения названия города к отсутствующему названию города в данных PointAddress

В итоге входной адрес 12725 Yosemite Blvd, Waterford сопоставлен со счетом 100 в мультиролевом локаторе, а пропущенное название города добавлено в выходные данные.

Итог мультиролевого локатора с отсутствующим названием города из связи ID соединения на панели Найти местоположение

Примечание:

ObjectID в первичных базовых данных не должен использоваться как ID для связывания атрибутов между различными ролями при построении локатора. Использование ObjectID может увеличить размер локатора и снизить производительность пакетного геокодирования, а также его качество.

Применение пространственного связывания для восстановления отсутствующих имен административных зон

Отсутствующие названия административных зон можно восстановить пространственно и добавить в локатор адресов, если базовые данные для соответствующей административной зоны – полигональные объекты, и в мультиролевой локатор добавлена административная роль. Инструмент Создать локатор будет использовать пространственные вычисления, чтобы определить, какой из полигонов административных зон включает каждый адрес, и автоматически присвоить соответствующее название зоны каждому адресу.

Если построение локатора базируется на роли Точки адреса с использованием базовых данных ниже, в записи для Yosemite Blvd снова отсутствует значение города. Однако в этом случае нет поля CityID, содержащего ID, чтобы связать данные вместе, как описано в предыдущем разделе.

Данные PointAddress без поля ID соединения и отсутствующим значением названия города
Однако если в локатор добавлена роль City, ссылающаяся на полигональные объекты, значения города можно пространственно восстановить для роли Point Address.

Данные City без поля соединения ID для пространственного присоединения названия города к отсутствующему названию в данных PointAddress

Точка для Yosemite Blvd лежит в полигоне, заданном для города Waterford, поэтому это значение добавится вместо отсутствующего названия из исходного класса объектов PointAddress. Таким образом, мультиролевой локатор может сопоставить входной адрес 12725 Yosemite Blvd, Waterford с оценкой 100, а пропущенное название города будет добавлено в выходные данные:

Итог мультиролевого локатора с отсутствующим названием города из пространственной связи на панели Найти местоположение

Примечание:

Восстановление значений по ID соединения имеет более высокий приоритет, чем пространственное вычисление, при построении локатора при помощи инструмента Создать локатор. В итоге пространственные вычисления не будут выполняться, если значения ID соединения в базовых данных есть и используются ролями, участвующими в мультиролевом локаторе.

Когда использовать составной локатор вместо мультиролевого локатора

Иногда мультиролевой локатор не соответствует требованиям определенного рабочего процесса. В частности, может возникнуть ситуация, когда локатору требуется несколько слоев базовых данных, для которых необходим один и тот же тип роли, и базовые данные не могут быть объединены в один набор данных. В таком случае, может понадобиться создать несколько отдельных локаторов и объединить их в составной локатор. Более подробно о составных локаторах см. в разделе Объединение нескольких локаторов в составной.

Связанные разделы