STCurveN (тип данных geography)
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Возвращает кривую, указанную в экземпляре geography типа LineString, CircularString или CompoundCurve.
Синтаксис
.STCurveN( n )
Аргументы
n
Выражение типа int со значением в диапазоне от 1 до числа кривых в экземпляре geography.
Типы возвращаемых данных
Тип возвращаемого значения SQL Server: geography
Тип возвращаемых данных CLR: SqlGeography
Исключения
Если n < 1, возникает исключение ArgumentOutOfRangeException.
Замечания
Значение NULL возвращается при возникновении указанных ниже условий.
Экземпляр geography объявлен, но не создан.
Экземпляр geography пуст.
n превышает число кривых в экземпляре geography (см. статью STNumCurves (тип данных geography)
Неравенство измерения для экземпляра geography (см. статью STDimension (тип данных geography)
Примеры
А. Применение метода STCurveN() к объекту CircularString
В приведенном ниже примере возвращается вторая кривая в экземпляре CircularString.
DECLARE @g geography = 'CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.STCurveN(2).ToString();
Пример возвращает управление.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
B. Применение метода STCurveN() к объекту CompoundCurve
В приведенном ниже примере возвращается вторая кривая в экземпляре CompoundCurve.
DECLARE @g geography = 'COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STCurveN(2).ToString();
Пример возвращает управление.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
В. Применение метода STCurveN() к объекту CompoundCurve, содержащему три объекта CircularString
В приведенном ниже примере используется экземпляр CompoundCurve, в котором три отдельных экземпляра CircularString объединяются в одной последовательности кривых, как в предыдущем примере.
DECLARE @g geography = 'COMPOUNDCURVE (CIRCULARSTRING (-122.358 47.653, -122.348 47.649, -122.348 47.658), CIRCULARSTRING(-122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STCurveN(2).ToString();
Пример возвращает управление.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
STCurveN()
возвращает одинаковые результаты независимо от используемого формата Well-Known Text (WKT).
D. Проверка допустимости перед вызовом метода STCurve()
В приведенном ниже примере показано, как проверить допустимость n перед вызовом метода STCurveN():
DECLARE @g geography;
DECLARE @n int;
SET @n = 2;
SET @g = geography::Parse('LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');
IF @n >= 1 AND @n <= @g.STNumCurves()
BEGIN
SELECT @g.STCurveN(@n).ToString();
END