STIntersection (тип данных geography)
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Возвращает объект, представляющий точки, в которых экземпляр geography пересекается с другим экземпляром geography.
Синтаксис
.STIntersection ( other_geography )
Аргументы
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();
В. Вычисление симметрической разницы с 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();