Запрос свойств и режимов геометрических объектов

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

Число точек

Непустые объекты geometry состоят из точек. Эти точки соответствуют координатам на осях X и Y в плоскости, где рисуются фигуры. Объект geometry предоставляет множество встроенных методов для запросов к точкам экземпляра.

Получение числа точек, образующих экземпляр

Получение конкретной точки экземпляра

Произвольная точка, принадлежащая экземпляру

Получение начальной точки экземпляра

Получение конечной точки экземпляра

Координата по оси X экземпляра Point

Координата по оси Y экземпляра Point

STY

Геометрический центр экземпляра Polygon или MultiPolygon

Dimension

Непустой объект geometry может иметь 0, 1 или 2 измерения. Объекты geometries, имеющие 0 измерений, например Point и MultiPoint, не имеют ни длины, ни площади. Одномерные объекты, такие как LineString и MultiLineString, имеют длину. Двумерные объекты, такие как Polygon и MultiPolygon, имеют длину и площадь. Пустые экземпляры имеют измерение -1, а экземпляр GeometryCollection имеет площадь, зависящую от типов его содержимого.

Получение измерения экземпляра

Получение длины экземпляра

Получение площади экземпляра

Пустой

Пустой экземпляр geometry не содержит ни одной точки. Длина пустых экземпляров LineString и MultiLineString равна нулю. Площадь пустых экземпляров Polygon и MultiPolygon равна нулю.

Проверка, является ли экземпляр пустым

Простая

Чтобы объект geometry экземпляра был простым, он должен удовлетворять двум следующим требованиям.

  • Каждая фигура экземпляра не должна пересекать саму себя, за исключением конечных точек.

  • Никакие две фигуры экземпляра не могут пересекаться в точке, не находящейся на их границах.

ПримечаниеПримечание

Пустые геометрические фигуры всегда являются простыми.

Определение, является ли экземпляр простым

Граница, внутренняя и внешняя область

Внутренняя область экземпляра geometry — это пространство, занимаемое экземпляром, а внешняя область — это пространство, не занимаемое им.

Граница определяется в OGC следующим образом:

  • Экземпляры Point и MultiPoint не имеют границы.

  • Границы LineString и MultiLineString образуются начальными и конечными точками, за исключением тех, которые появляются четное число раз.

DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 1, 0 0, 1 0, 0 1), (1 1, 1 0))');
SELECT @g.STBoundary().ToString();

Граница экземпляра Polygon или MultiPolygon — это совокупность его колец.

DECLARE @g geometry;
SET @g = geometry::Parse('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))');
SELECT @g.STBoundary().ToString();

Получение границы экземпляра

STBoundary

Огибающая

Огибающая экземпляра geometry , которая также называется ограничивающим прямоугольником, представляет собой выровненный по осям прямоугольник, построенный на основе максимальных и минимальных координат (X,Y) экземпляра.

Получение огибающей экземпляра

STEnvelope

Замыкание

Экземпляр geometry, представляющий собой фигуру, у которой совпадают начальная и конечная точки, называется замкнутым. Объекты Polygon считаются замкнутыми, а объекты Point являются незамкнутыми.

Кольцо — это простой замкнутый экземпляр LineString.

Определение, является ли экземпляр замкнутым

STIsClosed

Определение, является ли экземпляр кольцом

STIsRing

Получение внешнего кольца экземпляра Polygon

STExteriorRing

Получение числа внутренних колец в экземпляре Polygon

STNumInteriorRing

Получение конкретного внутреннего кольца в экземпляре Polygon

STInteriorRingN

Идентификатор пространственной ссылки (SRID)

Идентификатор пространственной ссылки (SRID) — это идентификатор, указывающий, в какой координатной системе представлен экземпляр geometry. Два экземпляра с разными SRID нельзя сравнивать.

Установка или получение идентификатора SRID для экземпляра

STSrid

Это свойство можно изменять.