Как объединить слои с использованием геометрии или атрибутов
Обзор
В ГИС, объединения являются мощным механизмом для комбинирования информации из разных слоев на основе общего атрибута или пространственного взаимоотношения. Объединения позволяют вам объединить данные атрибутов из одного слоя (исходного слоя) с другим слоем (целевым слоем), используя общее поле или местоположение. Первый - это объединение данных по ключу (атрибут в таблице). Используя общее поле, такое как уникальный ключ, вы можете связать записи в одной таблице с записями в другой таблице. Второй подход - это объединение данных по местоположению (пространственно). Мы поддерживаем оба подхода и предлагаем вам возможность использовать их в зависимости от ваших потребностей.
Предположим, что вы получили данные, описывающие процентное изменение населения для разных округов, и хотите создать несколько карт роста населения на основе этой информации. В то время как ваши данные о населении хранятся в таблице в вашей базе данных и имеют общее поле с вашим слоем, вы можете объединить эти данные со своими географическими объектами и использовать дополнительные поля для маркировки, категоризации, запросов или анализа объектов слоя.
Обычно вы выполняете объединение данных на основе значения поля, которое существует в обеих таблицах. Имена полей не обязательно должны совпадать, но типы данных должны быть одинаковыми - числа с числами, строки со строками и так далее. Вы можете выполнить объединение данных, используя инструмент геообработки “Add Join”. При объединении атрибутов объединенные поля динамически добавляются в существующую таблицу. Свойства полей, такие как псевдонимы, видимость и форматирование чисел, сохраняются при добавлении или удалении объединения.
Возможности объединения по ключевому полю
- Этот подход позволяет вам связывать записи из разных таблиц на основе общего ключевого поля. Вы можете указать ключевое поле для использования для сравнения, чтобы установить связь между записями. Это особенно полезно, когда вам нужно объединить данные на основе идентификатора или другого уникального атрибута.
Указание метода для сравнения данных на основе ключевого поля:
- Вы можете определить различные методы сравнения для ключевого поля при объединении данных. Например, вы можете выбрать точное соответствие, сравнивать по шаблону или в пределах диапазона значений. Это позволяет более точно определять взаимосвязи между записями и дает контроль над процессом объединения данных.
Указание списка имен атрибутов для объединения:
- При объединении данных вы можете указать конкретные атрибуты, которые должны быть объединены. Это позволяет вам выбирать только необходимые атрибуты для объединения и управлять структурой результирующей таблицы.
Возможности объединения с использованием геометрии
- Этот подход позволяет вам связывать данные на основе их пространственного местоположения. Вы можете определить радиус поиска, в пределах которого будут искаться ближайшие геометрические объекты для объединения. Это полезно, когда вам нужно объединить данные на основе их географического положения.
Контроль радиуса поиска для обнаружения ближайших геометрических объектов:
- Вы можете контролировать радиус поиска при объединении данных на основе местоположения. Указав значение радиуса, вы определяете расстояние, в пределах которого будут искаться ближайшие объекты для объединения. Это дает контроль над тем, какие объекты будут участвовать в процессе объединения данных на основе их пространственного взаимоотношения.
Демо-проект
Чтобы лучше понять функциональность нашей библиотеки, рассмотрим пример ее использования. Этот код иллюстрирует, как объединять векторные слои по атрибутам или геометрии.
Предоставленный код состоит из двух методов JoinByIndex() и JoinByCoords(), которые демонстрируют операции объединения данных с использованием класса LayerConstructor.
В методе JoinByIndex():
-
Создаются списки геометрий с соответствующими атрибутами.
-
Инициализируется объект LayerConstructor.
-
Метод создает векторный слой и геометрический слой, используя предоставленные геометрии.
-
Геометрический слой объединяется на основе уникального идентификатора (“Id”) с использованием метода JoinLayersById().
-
Возвращается результирующий объединенный векторный слой.
В методе JoinByCoords():
-
Создаются списки геометрий с соответствующими атрибутами.
-
Инициализируется объект LayerConstructor.
-
Создаются геометрические слои, используя предоставленные геометрии.
-
Геометрические слои объединяются на основе совпадающих координат с использованием метода JoinLayersByCoords().
-
Возвращается результирующий объединенный векторный слой.
В итоге эти методы демонстрируют два разных подхода к объединению данных: один основан на уникальном идентификаторе, а другой - на совпадающих координатах. Класс LayerConstructor облегчает эти операции объединения данных.
Параметры объединения для индекса
Класс JoinOptions предоставляет набор параметров для настройки объединения слоев. Давайте углубимся в каждый параметр:
-
JoinAttributeName: Этот параметр позволяет указать имя атрибута из объединенного слоя, значение которого будет использоваться в сравнении условия. Он устанавливает связь между двумя слоями на основе этого атрибута.
-
TargetAttributeName: С помощью этого параметра вы можете указать имя атрибута из основного слоя, который будет сравниваться с атрибутом из объединенного слоя. Это помогает определить соответствующие объекты между слоями.
-
JoinAttributeNames: Этот параметр позволяет указать список имен атрибутов, которые вы хотите объединить. Если этот список остается пустым или установлен в null, все атрибуты из объединенного слоя будут включены в операцию объединения. Однако, выбирая конкретные имена атрибутов, вы можете контролировать атрибуты, которые объединяются, что может быть полезно для оптимизации использования памяти и времени обработки.
-
ConditionComparer: Этот параметр позволяет определить пользовательскую логику для сравнения значений атрибутов между объектами двух слоев. По умолчанию он использует сравнитель EqualityComparer.Default, который проверяет на равенство. Однако вы можете предоставить свой собственный пользовательский сравнитель, реализующий IEqualityComparer, для более специализированных требований к сравнению.
-
JoinedAttributesPrefix: Этот параметр позволяет указать префикс строки для имен атрибутов объединенного слоя. Значение по умолчанию - “joined_”, что означает, что объединенные атрибуты будут иметь префикс “joined_” в результирующем объединенном слое. Этот префикс помогает различать объединенные атрибуты от исходных атрибутов основного слоя.
Класс JoinOptions обеспечивает гибкость и контроль над различными аспектами процесса объединения слоев. Вы можете указать атрибуты для объединения, настроить логику сравнения и определить префикс для результирующих объединенных атрибутов. Эти параметры позволяют адаптировать операцию объединения в соответствии с вашими конкретными потребностями и получать значимые выводы из объединенных слоев.
Параметры объединения для геометрии
Класс JoinByGeometryOptions представляет параметры для объединения слоев на основе геометрии. Давайте изучим функциональность каждого параметра:
-
Radius: Этот параметр указывает радиус, в пределах которого будет осуществляться поиск объединенной геометрии. Он определяет близость, в пределах которой объекты из основного слоя будут сопоставлены с объектами из объединенного слоя на основе их пространственного взаимоотношения.
-
ConditionComparer: Этот параметр позволяет определить пользовательскую логику для сравнения значений атрибутов из объектов двух слоев. По умолчанию используется EqualityComparer.Default, который проверяет на равенство. Однако вы можете предоставить свой собственный пользовательский сравнитель, реализующий IEqualityComparer, для более конкретных требований к сравнению.
-
JoinedAttributesPrefix: Этот параметр позволяет указать префикс строки для имен атрибутов объединенного слоя. Значение по умолчанию - “joined_”, что означает, что объединенные атрибуты будут иметь префикс “joined_” в результирующем объединенном слое. Этот префикс помогает различать объединенные атрибуты от исходных атрибутов основного слоя.
Класс JoinByGeometryOptions предоставляет средства для настройки процесса объединения слоев на основе их пространственного взаимоотношения. Указав радиус поиска, вы можете контролировать степень, в пределах которой будут сопоставлены геометрии. Это позволяет точно настроить операцию объединения на основе желаемой близости между объектами. Возможность предоставить пользовательский сравнитель дает вам гибкость при сравнении значений атрибутов, а возможность префиксировать объединенные атрибуты помогает различать их в результирующем объединенном слое.
Используя эти параметры, вы можете выполнять пространственно осведомленное объединение данных и получать информацию из объединенных слоев, основанную на их пространственной близости и значениях атрибутов.
Обзор
Механизм объединения данных в ГИС позволяет комбинировать геометрические объекты с соответствующими атрибутами из разных слоев. Это обеспечивает возможность анализа и извлечения информации на основе пространственных и атрибутивных взаимосвязей внутри данных. Доступные параметры позволяют настроить процесс объединения для удовлетворения конкретных требований и потребностей анализа в данных ГИС.
Объединение данных облегчает различные задачи, включая:
-
Поиск объектов, соответствующих определенным пространственным критериям, например, определение всех зданий в радиусе 500 метров от определенной точки.
-
Объединение географических данных для создания более полного и информативного обзора ситуации.
-
Анализ значений атрибутов объектов на основе определенных пространственных условий для выявления тенденций и закономерностей.
Параметры объединения данных позволяют точно настроить процесс сопоставления объектов. Эти параметры включают выбор атрибутов для объединения, определение пользовательской логики для сравнения значений атрибутов и добавление префикса к именам атрибутов объединенных данных. Эти параметры обеспечивают гибкость и адаптивность процесса объединения, удовлетворяя конкретные требования и цели анализа данных в ГИС.
Механизм объединения данных играет важную роль в интеграции и анализе географических данных, давая более полное понимание пространственной и атрибутивной природы исследуемых объектов.