STIntersection (тип данных geography)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает объект, представляющий точки, в которых экземпляр geography пересекается с другим экземпляром geography.

Синтаксис

  
.STIntersection ( other_geography )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

other_geography
Другой экземпляр geography, сравниваемый с экземпляром, для которого вызывается метод STIntersection().

Типы возвращаемых данных

Тип возвращаемого значения SQL Server: geography

Тип возвращаемых данных CLR: SqlGeography

Замечания

Возвращается пересечение двух географических экземпляров.

Метод STIntersection() всегда возвращает значение NULL, если идентификаторы пространственных ссылок (SRID) экземпляров geography не совпадают.

SQL Server поддерживает пространственные экземпляры, размер которых превышает полушарие. SQL Server может включать экземпляры FullGlobe в набор возможных результатов, возвращаемых на сервере.

Результат может содержать сегменты дуги, только если во входном экземпляре содержатся сегменты дуги.

Примеры

А. Вычисление пересечения Polygon и LineString

В следующем примере метод STIntersection() используется для вычисления пересечения Polygon и LineString.

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('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SELECT @g.STIntersection(@h).ToString();  

B. Вычисление пересечения Polygon и CurvePolygon

Следующий пример возвращает экземпляр, содержащий сегмент дуги.

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('CURVEPOLYGON(CIRCULARSTRING(-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);  
SELECT @g.STIntersection(@h).ToString();  

C. Вычисление симметрической разницы с FullGlobe

В следующем примере сравнивается симметричная разница между Polygon и FullGlobe.

DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.STIntersection('FULLGLOBE').ToString();  

См. также

Методы OGC в экземплярах Geography