Partilhar via


STIntersection (tipo de dados geography)

Retorna um objeto que representa os pontos onde uma instância de geography intercepta outra instância de geography.

Sintaxe

.STIntersection ( other_geography )

Argumentos

  • other_geography
    É outra instância de geography para comparar com a instância na qual STIntersection() está sendo invocado.

Tipos de retorno

SQL Server tipo de retorno: geography

Tipo de retorno CLR: SqlGeography

Comentários

A interseção de duas instâncias de geografia é retornada.

STIntersection() sempre retornará nulo se os SRIDs (IDs de referência espacial) das instâncias de geography não corresponderem.

O SQL Server dá suporte a instâncias espaciais maiores que um hemisfério. O SQL Server pode incluir instâncias FullGlobe em um conjunto de possíveis resultados retornados no servidor.

O resultado poderá conter segmentos de arco circular apenas se as instâncias de entrada contiverem segmentos de arco circulares.

Exemplos

A.Computando a interseção de um polígono e uma LineString

O exemplo a seguir usa STIntersection() para computar a interseção de um Polygon e uma 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.Calculando a interseção de um polígono e uma CurvePolygon

O exemplo a seguir retorna uma instância que contém um segmento de arco circular.

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.Computando a diferença simétrica com FullGlobe

O exemplo a seguir compara a diferença simétrica de um Polygon com 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();

Consulte também

Outros recursos

Métodos do OGC em instâncias de geography