STIntersection (tipo de dados geography)
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instâ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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de