Рисунок 769. Критерии пересечения объектов
STDistance(<объект_сравнения>
)
Возвращает расстояние между ближайшими точками сравниваемых объектов.
STEquals(<объект_сравнения>
)
Выполняет сравнение пространственного объекта, для которого вызвана функция, с
пространственным объектом <объект_сравнения>
. Сравнение выполняется
по типу объектов, размерам и положению в пространстве.
Возвращает 1
(True
), если объекты равны, и
0
(False
) в обратном случае.
STDisjoint(<объект_взаимодействия>
)
Проверяет отсутствие пересечений и касаний пространственного объекта, для которого вызвана
функция, с пространственным объектом <объект_взаимодействия>
.
Возвращает 1
(True
), если
<объект_взаимодействия>
пространственно никак не накладывается, не
пересекает и не касается данного объекта, и 0
(False
) в
обратном случае.
STTouches(<объект_касания>
)
Проверяет, не касается ли <объект_касания>
пространственного
объекта, для которого вызвана функция.
Возвращает 1
(True
) в случае касания и
0
(False
) в обратном случае.
STWithin(<объект_вхождения>
)
Проверяет объект, для которого вызвана функция, на вхождение в пространственный объект
<объект_вхождения>
. Пространственный объект считается входящим в
другой объект, если все его точки лежат внутри границ другого объекта.
Возвращает 1
(True
) в случае вхождения и
0
(False
) в обратном случае.
STOverlaps(<объект_перекрытия>
)
Проверяет, не перекрывает ли пространственный объект, для которого вызвана функция,
пространственный объект <объект_перекрытия>
. Считается, что один
пространственный объект перекрывает другой, если часть его точек лежит внутри границ второго
объекта, а часть – снаружи.
STCrosses(<объект_пересечения>
)
Проверяет, пересекает ли пространственный объект, для которого вызвана функция, объект
<объект_пересечения>
. Пересекать другие объекты могут
пространственные объекты типов LineString и Point.
Пересечением считается случай, в котором точки пересекающего объекта располагаются от одной границы пересекаемого объекта до другой, либо, в случае пересечения ломаной, достаточно расположения хотя бы одной точки пересекающего объекта на пересекаемой ломаной.
Возвращает 1
(True
) в случае пересечения и
0
(False
) в обратном случае.
STIntersects(<объект_взаимодействия>
)
Проверяет пространственный объект, для которого вызвана функция, на пространственное
взаимодействие с с объектом <объект_взаимодействия>
. Взаимодействием
считается касание, перекрытие, пересечение одного объекта другим и включение одного объекта в
другой.
Возвращает 1
(True
) в случае взаимодействия и
0
(False
) в обратном случае.
STContains(<объект_вхождения>
)
Проверяет, не включает ли пространственный объект, для которого вызвана функция, в себя
пространственный объект <объект_вхождения>
.
Возвращает 1
(True
) в случае вхождения и
0
(False
) в обратном случае.
STRelate(<объект_сравнения>
,<матрица_сравнения>
)
Выполняет сравнение пространственного объекта, для которого вызывает функция, с объектом
<объект_сравнения>
в соответствии с заданной матрицей сравнения
<матрица_сравнения>
.
Матрица сравнения является матрицей 3x3, в ячейках которой задается тип взаимодействия между внутренними областями, границами и внешними областями сравниваемых пространственных объектов. Матрица имеет вид, представленный таблицей (). Столбцы матрицы отвечают за один сравниваемый объект, строки – за другой.
В ячейках таблицы сравнения записывается, какое количество измерений должно иметь взаимодействие соответствующих частей объектов:
F
– не должно быть взаимодействия;
T
– должно быть взаимодействие, количество измерений
неважно;
*
– не имеет значения, есть ли взаимодействие или нет;
0, 1, 2
– взаимодействие должно иметь указанное количество
измерений.
В аргументе функции Relate матрица взаимодействия записывается в виде строки, в которой перечислены требуемые значения всех ячеек матрицы сравнения, слева-направо, сверху-внизу.
Например, для двух пространственных объектов a
и
b
строка a.Relate(b, "TFFFTFFFT")
аналогична строке
a.Equals(b)
.
Таблица 11. Матрица сравнения пространственных объектов
Внутренняя область | Граница | Внешняя область | |
---|---|---|---|
Внутренняя область | |||
Граница | |||
Внешняя область |