Поделиться через


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

Возвращает объект, представляющий точки, в которых экземпляр 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();

См. также

Другие ресурсы

Методы OGC, применяемые к географическим объектам