Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Возвращает объект, представляющий точки, в которых экземпляр geography пересекается с другим экземпляром geography.
Syntax
.STIntersection ( other_geography )
Arguments
other_geography
Другой экземпляр geography, сравниваемый с экземпляром, для которого вызывается метод STIntersection().
Типы возвращаемых данных
Тип возвращаемого значения SQL Server: geography
Тип возвращаемых данных CLR: SqlGeography
Remarks
Возвращается пересечение двух географических экземпляров.
Метод STIntersection() всегда возвращает значение NULL, если идентификаторы пространственных ссылок (SRID) экземпляров geography не совпадают.
SQL Server поддерживает пространственные экземпляры, размер которых превышает полушарие. SQL Server может включать экземпляры FullGlobe в набор возможных результатов, возвращаемых на сервере.
Результат может содержать сегменты дуги, только если во входном экземпляре содержатся сегменты дуги.
Examples
A. Вычисление пересечения 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();