Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье
Область применения: 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.
Следующий пример возвращает вторую кривую в экземпляре 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)
Следующий пример возвращает вторую кривую в экземпляре 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)
Следующий пример использует экземпляр 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
, будут совпадать.
В приведенном ниже примере показано, как проверить допустимость @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