Compartilhar via


STIntersection (tipo de dados geography)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Retorna um objeto que representa os pontos em que uma instância de geography intersecciona outra instância de geography.

Sintaxe

  
.STIntersection ( other_geography )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

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

Tipos de retorno

Tipo de retorno do SQL Server: geography

Tipo de retorno do CLR: SqlGeography

Comentários

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

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

SQL Server oferece suporte a instâncias espaciais maiores do que um hemisfério. SQL Server pode incluir instâncias de FullGlobe no 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

Métodos do OGC em instâncias de geography