Przestrzenne typy danych w SQL Server 2008, cz. 3/4
Opublikowano: 2010-10-22
STEndPoint – zwraca punkt końcowy podanej figury.
Przykład 21. STEndPiont
DECLARE @c GEOMETRY =' LINESTRING (80 100, 40 100, 40 50, 100 50, 100 80)'
SELECT @c.STEndPoint().ToString() AS STEndPoint
STEnvelope – zwraca prostokąt, którego bokami są linie przecinające punkty minimalne i maksymalne figury względem osi X i Y. Linie te są prostopadłe do obu osi.
Przykład 22. STEnvelope
DECLARE @c GEOMETRY =' LINESTRING (80 100, 40 100, 40 50, 100 50, 100 80)'
SELECT @c.STEnvelope().ToString() AS STEnvelope
STEquals – zwraca 1, jeśli podane figury są identyczne. W przeciwnym wypadku zwracana jest wartość 0.
Przykład 23. STEquals
DECLARE @point geometry = 'POINT(3 2)'
DECLARE @point2 geometry = 'POINT(3 2)'
SELECT @point.STEquals(@point2) AS STEquals
STExteriorRing – zwraca zewnętrzny pierścień figury.
Przykład 24. STExteriorRing
Wróćmy na moment do funkcji STBuffer. Jeżeli zwiększylibyśmy odległość do 20, otrzymalibyśmy figurę składającą się w dwóch pierścieni – zewnętrznego i mniejszego, znajdującego się wewnątrz tego pierwszego. Funkcja STExteriorRing zwróci nam zewnętrzny pierścień.
DECLARE @c GEOMETRY =' LINESTRING (80 100, 40 100, 40 50, 100 50, 100 80)'
SELECT @c.STBuffer(20).ToString() AS STBuffer
SELECT @c.STBuffer(20).STExteriorRing().ToString() AS STExteriorRing
STGeometryN – zwraca wybraną figurę z kolekcji figur geometrycznych.
Przykład 25. STGeometryN
DECLARE @multi GEOMETRY
SET @multi ='MULTIPOLYGON (((40 80, 40 40, 90 40,90 80, 40 80)),((10 10, 20 10, 20 50, 10 10)))'
SELECT @multi.STGeometryN(2).ToString() AS STGeometryN
STGeometryType – zwraca rodzaj podanej figury.
Przykład 26. STGeometryType
DECLARE @multi GEOMETRY
SET @multi ='MULTIPOLYGON (((40 80, 40 40, 90 40,90 80, 40 80)),((10 10, 20 10, 20 50, 10 10)))'
SELECT @multi.STGeometryType() AS STGeometryType
InstanceOf – sprawdza, czy figura jest określonego przez użytkownika rodzaju. Jeśli jest zgodność, zwraca 1, w przeciwnym przypadku 0.
Przykład 27. InstanceOf
DECLARE @c GEOMETRY =' LINESTRING (80 100, 40 100, 40 50, 100 50, 100 80)'
SELECT @c.InstanceOf('LINESTRING') AS InstanceOf