Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает объект, представляющий точки, в которых экземпляр 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();
Б.Вычисление пересечения 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();