Выбрать по расположению: графические примеры
Тема содержит примеры и предполагаемые результаты различных опций Отношений (Relationship), доступных для инструмента Выбрать в слое по расположению (Select Layer By Location) и инструмента геообработки Spatial_Join.
Пространственные отношения WITHIN_A_DISTANCE и операторы 3D пространственных отношений, таких как INTERSECT_3D и WITHIN_A_DISTANCE_3D, не включены в примеры ниже. Подробные сведения по 3D отношениям можно посмотреть в разделе Отношения Выборка по расположению 3D (Select By Location 3D relationships).
Диалоговое окно Выбрать по расположению (Select By Location) в меню Выборка (Selection) ArcMap, ArcScene и ArcGlobe не использует тот же термин, что и инструмент геообработки, описывающий отношение. Расположенная ниже таблица содержит соответствие терминологии.
Инструмент геообработки |
Выборка\Выбрать по расположению |
---|---|
INTERSECT (пересекает) |
Объекты целевого слоя пересекают объект исходного слоя. |
INTERSECT_3D (пересечь 3D) |
Объекты целевого слоя пересекают (3D) объект исходного слоя. |
WITHIN_A_DISTANCE (в пределах расстояния) |
Пространственные объекты целевого слоя находятся в пределах заданного расстояния от объекта исходного слоя. |
WITHIN_A_DISTANCE_3D (в пределах расстояния 3D) |
Пространственные объекты целевого слоя находятся в пределах заданного расстояния от (3D) объекта исходного слоя. |
CONTAINS (содержит) |
Пространственные объекты целевого слоя содержат объект исходного слоя. |
COMPLETELY_CONTAINS (полностью содержит) |
Пространственные объекты целевого слоя полностью содержат объект входного слоя. |
CONTAINS_CLEMENTINI (содержит по Клементини) |
Объекты целевого слоя содержат объекты (Clementini) исходного слоя. |
WITHIN |
Объекты целевого слоя находятся внутри объекта исходного слоя. |
COMPLETELY_WITHIN (полностью внутри) |
Объекты целевого слоя находятся полностью внутри объекта исходного слоя. |
WITHIN_CLEMENTINI (внутри по Клементини) |
Объекты целевого слоя находятся внутри (Clementini) объекта исходного слоя. |
ARE_IDENTICAL_TO (идентичны) |
Объекты целевого слоя идентичны объекту исходного слоя. |
BOUNDARY_TOUCHES |
Объекты целевого слоя касаются границы объекта исходного слоя. |
SHARE_A_LINE_SEGMENT_WITH |
Объекты целевого слоя имеют общий линейный сегмент с объектом исходного слоя. |
CROSSED_BY_THE_OUTLINE_OF |
Пространственные объекты целевого слоя пересекаются контуром объекта исходного слоя. |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
Объекты целевого слоя имеют центр внутри объекта исходного слоя. |
Все имеющиеся описания используют терминологию инструмента Выбрать в слое по расположению (Select Layer By Location). Однако эти детали также применяются к инструменту Пространственное соединение (Spatial Join). Имена параметров различаются в инструментах:
- Для инструмента Выбрать в слое по расположению (Select Layer By Location) это Входной векторный слой (Input Feature Layer); для инструмента Пространственное соединения (Spatial Join) – Целевые объекты (Target Features).
- Для инструмента Выбрать в слое по расположению (Select Layer By Location) это Вспомогательные объекты выборки (Selecting Features); для инструмента Пространственное соединение (Spatial Join) – Присоединяемые объекты (Join Features).
- Для инструмента Выбрать в слое по расположению (Select Layer By Location) это Отношения (Relationship); для инструмента Пространственное соединение (Spatial Join) – Опции сопоставления (Match Option).
Пространственные отношения Clementini.
WITHIN_CLEMENTINI и CONTAINS_CLEMENTINI относятся к внутренней части и содержат пространственные отношения, определенные в следующем документе: «Clementini, Eliseo, Paolino Di Felice, and Peter van Oosterom, «A Small Set of Formal Topological Relationships Suitable for End-User Interaction,» Proceedings of the Third International Symposium on Advances in Spatial Databases, » 277–295, June 23–25, 1993.
Контраст трех содержит пространственные отношения
Определение границы.: Для линий граница – это две конечных точки; для полигонов – это ребро.
- CONTAINS – выбирает объекты во входном векторном слое, которые содержат объект в выбирающем векторном слое. Выбранные пространственные объекты могут быть как внутри, так и на границе входного векторного слоя.
- COMPLETELY_CONTAINS – выбирает объекты во входном векторном слое, которые содержат объект в выбирающем векторном слое, до тех пор, пока объект в выбирающем векторном слое не пересечет границу входного векторного слоя.
- CONTAINS_CLEMENTINI – результаты идентичны CONTAINS с одним исключением. Если объект в выбранном векторном слое полностью находится на границе входного векторного слоя, где ни одна часть содержащегося объекта не находится внутри объекта входного векторного слоя, входной объект не будет выбран. CLEMENTINI устанавливает, что граница точки всегда пустая, а граница линии – конечные точки.
- CONTAINS и CONTAINS_CLEMENTINI производит идентичные результаты с точечными и мультиточечными входными данными, и выбираемыми объектами будут точки и мультиточки.
Контраст трех в рамках пространственных отношений
- WITHIN – выбирает объекты во входном векторном слое, которые находятся внутри выбирающего векторного слоя или содержащихся в нем объектов.
- COMPLETELY_WITHIN – результат идентичен WITHIN с одним исключением. Если объект во входном векторном слое пересекает границу объекта в выбирающем векторном слое, тогда он не выбирается.
- WITHIN_CLEMENTINI – результат идентичен WITHIN за исключением случаев, когда весь объект во входном векторном слое находится на границе объекта в выбирающем векторном слое. CLEMENTINI устанавливает, что граница точки всегда пустая, а граница линии – конечные точки.
Легенда диаграмм
для всех приведенных ниже примеров применяется следующая легенда:
- Входной объект: зеленый
- Центр входного объекта: красный X
- Выбор объекта: серый
Диаграммы подписаны A, B, C и т. д. Каждое отношение (INTERSECT, CONTAINS и т. д.), действительное для комбинации геометрий, находится в списке в левом столбце таблицы. Геометрические случаи, которые будут выбраны для этого отношения, перечислены в правом столбце таблицы.
Выбрать точки, используя точки
INTERSECT (пересекает) |
A |
CONTAINS (содержит) |
A |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A |
WITHIN |
A |
WITHIN_CLEMENTINI (внутри по Клементини) |
A |
ARE_IDENTICAL_TO (идентичны) |
A |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A |
Выбрать точки, используя мультиточки
INTERSECT (пересекает) |
A, C |
CONTAINS (содержит) |
A |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A |
WITHIN |
A, C |
WITHIN_CLEMENTINI (внутри по Клементини) |
A, C |
ARE_IDENTICAL_TO (идентичны) |
A |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, C |
Выбрать точки, используя линии
INTERSECT (пересекает) |
A, C |
WITHIN |
A, C |
COMPLETELY_WITHIN (полностью внутри) |
A |
WITHIN_CLEMENTINI (внутри по Клементини) |
A |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, C |
Выбрать точки, используя полигоны
INTERSECT (пересекает) |
A, C |
WITHIN |
A, C |
COMPLETELY_WITHIN (полностью внутри) |
A |
WITHIN_CLEMENTINI (внутри по Клементини) |
A |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, C |
Выбрать мультиточки, используя точки
INTERSECT (пересекает) |
A, C |
CONTAINS (содержит) |
A, C |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A, C |
WITHIN |
A |
WITHIN_CLEMENTINI (внутри по Клементини) |
A |
ARE_IDENTICAL_TO (идентичны) |
A |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, D |
Выбрать мультиточки, используя мультиточки
INTERSECT (пересекает) |
A, C, E, F |
CONTAINS (содержит) |
A, F |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A, F |
WITHIN |
A, C |
WITHIN_CLEMENTINI (внутри по Клементини) |
A, C |
ARE_IDENTICAL_TO (идентичны) |
A |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, D |
Выбрать мультиточки, используя линии
INTERSECT (пересекает) |
A, C, E, F |
WITHIN |
A, C, E |
COMPLETELY_WITHIN (полностью внутри) |
A |
WITHIN_CLEMENTINI (внутри по Клементини) |
A, E |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, D, E |
Выбрать мультиточки, используя полигоны
INTERSECT (пересекает) |
A, C, D, E, F |
WITHIN |
A, C, D, E |
COMPLETELY_WITHIN (полностью внутри) |
A |
WITHIN_CLEMENTINI (внутри по Клементини) |
A, D, E |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, B, C, E, F |
Выбрать линии, используя точки
INTERSECT (пересекает) |
A, C, D |
CONTAINS (содержит) |
A, C, D |
COMPLETELY_CONTAINS (полностью содержит) |
A, D |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A, D |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
D |
Выбрать линии, используя мультиточки
INTERSECT (пересекает) |
A, C, D, E |
CONTAINS (содержит) |
A, C, E |
COMPLETELY_CONTAINS (полностью содержит) |
A |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A, E |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
D |
Выбрать линии, используя линии
INTERSECT (пересекает) |
A, C, D, E, F, G, H, I, J |
CONTAINS (содержит) |
G, H |
COMPLETELY_CONTAINS (полностью содержит) |
G |
CONTAINS_CLEMENTINI (содержит по Клементини) |
G, H |
WITHIN |
F, H |
COMPLETELY_WITHIN (полностью внутри) |
F |
WITHIN_CLEMENTINI (внутри по Клементини) |
F, H |
ARE_IDENTICAL_TO (идентичны) |
H |
BOUNDARY_TOUCHES |
C, E |
Выбрать линии, используя полигоны
INTERSECT (пересекает) |
A, C, D, E, F, G, H, I, J, K, L, M, N, O |
WITHIN |
A, D, G, H, I, O |
COMPLETELY_WITHIN (полностью внутри) |
A |
WITHIN_CLEMENTINI (внутри по Клементини) |
A, D, G, H, I |
BOUNDARY_TOUCHES |
D, F, G, H, I, K, L, M, N, O |
SHARE_A_LINE_SEGMENT_WITH |
G, I, J, K, M, O |
CROSSED_BY_THE_OUTLINE_OF |
C, E, H, L, N |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, C, D, E, G, H, I, J, O |
Выбрать полигоны, используя точки
INTERSECT (пересекает) |
A, B |
CONTAINS (содержит) |
A, B |
COMPLETELY_CONTAINS (полностью содержит) |
A |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, D |
Выбрать полигоны, используя мультиточки
INTERSECT (пересекает) |
A, B, C, E |
CONTAINS (содержит) |
A, B, E |
COMPLETELY_CONTAINS (полностью содержит) |
A |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A, B |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
A, D |
Выбрать полигоны, используя линии
INTERSECT (пересекает) |
A, C, D, E, F, G, H, I, J, K, L, M, N, O |
CONTAINS (содержит) |
A, D, G, H, I, O |
COMPLETELY_CONTAINS (полностью содержит) |
A |
CONTAINS_CLEMENTINI (содержит по Клементини) |
A, D, G, H, I |
BOUNDARY_TOUCHES |
D, F, G, H, I, K, L, M, N, O |
SHARE_A_LINE_SEGMENT_WITH |
G, I, J, K, M, O |
CROSSED_BY_THE_OUTLINE_OF |
C, E, H, L, N |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
E, I, L |
Выбрать полигоны, используя полигоны
INTERSECT (пересекает) |
A, C, D, E, F, G, H, I, J, K, M |
CONTAINS (содержит) |
C, E, H, M |
COMPLETELY_CONTAINS (полностью содержит) |
C |
CONTAINS_CLEMENTINI (содержит по Клементини) |
C, E, H, M |
WITHIN |
F, G, H, M |
COMPLETELY_WITHIN (полностью внутри) |
F |
WITHIN_CLEMENTINI (внутри по Клементини) |
F, G, H, M |
ARE_IDENTICAL_TO (идентичны) |
H, M |
BOUNDARY_TOUCHES |
D, E, G, H, I, J, M |
SHARE_A_LINE_SEGMENT_WITH |
D, H, I, M |
CROSSED_BY_THE_OUTLINE_OF |
A, E, G, J, K |
HAVE_THEIR_CENTER_IN (имеют центр внутри) |
C, E, F, G, H, K, L |