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

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

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

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

Подсказка:

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

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

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

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

Например, используя данные вверху, создан составной локатор из двух отдельных локаторов на основании ролей Точки адреса и Адреса улиц, названный SanDiegoComposite. На основании ролей Точки адреса и Адреса улиц создан мультиролевой локатор для обеих ролей, названный 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 соединения в базовых данных есть и используются ролями, участвующими в мультиролевом локаторе.

Примеры использования составного локатора

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

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