STUnion (тип данных geography)
Возвращает объект, представляющий объединение экземпляра geography с другим экземпляром geography.
Синтаксис
.STUnion ( other_geography )
Аргументы
- other_geography
Другой экземпляр geography, образующий объединение с экземпляром, для которого вызван метод STUnion().
Типы возвращаемых данных
Возвращаемый тип SQL Server: geography
Возвращаемый тип CLR: SqlGeography
Исключения
Этот метод вызывает исключение ArgumentException, если экземпляр содержит противоположную границу.
Замечания
Этот метод всегда возвращает значение NULL, если идентификаторы пространственной ссылки (SRID) экземпляров geography не совпадают.
SQL Server поддерживает пространственные экземпляры, размер которых превышает полусферу. В SQL Server набор возможных результатов, возвращаемый на сервер, был пополнен экземплярами FullGlobe.
Результат может содержать сегменты дуги, только если во входном экземпляре содержатся сегменты дуги.
Этот метод не является точным.
Примеры
А.Вычисление объединения двух многоугольников
В следующем примере метод STUnion() производит объединение двух экземпляров Polygon.
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('POLYGON((-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);
SELECT @g.STUnion(@h).ToString();
Б.Формирование результата FullGlobe
В следующем примере FullGlobe формируется в результате объединения двух экземпляров Polygon с помощью STUnion().
DECLARE @g geography = 'POLYGON ((-122.358 47.653, -122.358 47.658,-122.348 47.658, -122.348 47.649, -122.358 47.653))';
DECLARE @h geography = 'POLYGON ((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STUnion(@h).ToString();
В.Формирование треугольного отверстия из объединения объекта CurvePolygon и треугольного отверстия.
В следующем примере треугольное отверстие формируется из объединения объекта CurvePolygon с экземпляром Polygon.
DECLARE @g geography = 'POLYGON ((-0.5 0, 0 1, 0.5 0.5, -0.5 0))';
DECLARE @h geography = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0, 0.7 0.7, 0 1), (0 1, 0 0)))';
SELECT @g.STUnion(@h).ToString();