STCurveN (тип данных geometry)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL в Microsoft Fabric
Возвращает кривую, указанную в экземпляре geometry типа LineString, CircularString, CompoundCurve или MultiLineString.
Синтаксис
.STCurveN ( curve_index )
Аргументы
curve_index
Выражение типа int от 1 до количества кривых в экземпляре geometry.
Типы возвращаемых данных
Тип возвращаемых данных SQL Server: geometry
Тип возвращаемых данных CLR: SqlGeometry
Исключения
Если curve_index < 1, вызывается исключение ArgumentOutOfRangeException
.
Замечания
Значение NULL возвращается при выполнении любого из указанных ниже условий.
Экземпляр geometry объявлен, но не создан.
Экземпляр geometry является пустым.
curve_index превышает число кривых в экземпляре geometry.
Экземпляр geometry относится к типу Point, MultiPoint, Polygon, CurvePolygon или MultiPolygon.
Примеры
А. Применение STCurveN() к экземпляру CircularString
Следующий пример возвращает вторую кривую в экземпляре CircularString
:
DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';
SELECT @g.STCurveN(2).ToString();
Приведенный ранее в этом разделе пример возвращает:
CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)
B. Применение STCurveN() к экземпляру CompoundCurve с одним экземпляром CircularString
Следующий пример возвращает вторую кривую в экземпляре CompoundCurve
:
DECLARE @g geometry = 'COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0))';
SELECT @g.STCurveN(2).ToString();
Приведенный ранее в этом разделе пример возвращает:
CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)
В. Применение STCurveN() к экземпляру CompoundCurve с тремя экземплярами CircularString
Следующий пример использует экземпляр CompoundCurve
, который сочетает три отдельных экземпляра CircularString
в одной последовательности кривых, как в предыдущем примере:
DECLARE @g geometry = 'COMPOUNDCURVE (CIRCULARSTRING (0 0, 1 2.1082, 3 6.3246), CIRCULARSTRING(3 6.3246, 0 7, -3 6.3246), CIRCULARSTRING(-3 6.3246, -1 2.1082, 0 0))';
SELECT @g.STCurveN(2).ToString();
Приведенный ранее в этом разделе пример возвращает:
CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)
Обратите внимание, что результаты во всех трех предыдущих примерах совпадают. Какой бы формат WKT (Well-known Text) ни использовался для ввода одной и той же последовательности кривой, результаты, возвращаемые STCurveN()
при использовании экземпляра CompoundCurve
, будут совпадать.
D. Проверка параметра перед вызовом STCurveN()
В приведенном ниже примере показано, как проверить допустимость @n
перед вызовом метода STCurveN()
.
DECLARE @g geometry;
DECLARE @n int;
SET @n = 3;
SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');
IF @n >= 1 AND @n <= @g.STNumCurves()
BEGIN
SELECT @g.STCurveN(@n).ToString();
END
См. также
STNumCurves (тип данных geometry)
Методы OGC в экземплярах Geometry