STIntersection (tipo de datos geography)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve un objeto que representa los puntos donde una instancia de geography forma intersección con otra instancia de geography.

Sintaxis

  
.STIntersection ( other_geography )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

other_geography
Es otra instancia de geography con la que se compara la instancia en la que se está invocando STIntersection().

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geography

Tipo de valor devuelto de CLR: SqlGeography

Observaciones

Se devuelve la intersección de dos instancias de geography.

STIntersection() siempre devuelve NULL si no coinciden los identificadores de referencia espacial (SRID) de las instancias de geography.

SQL Server admite instancias espaciales mayores que un hemisferio. SQL Server puede incluir instancias de FullGlobe en el conjunto de resultados posibles devuelto en el servidor.

El resultado puede contener segmentos de arco circulares solo si las instancias de entrada contienen segmentos de arco circulares.

Ejemplos

A. Calcular la intersección de un tipo Polygon y un tipo LineString

En el ejemplo siguiente se usa STIntersection() para calcular la intersección de un tipo Polygon y un tipo 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. Calcular la intersección de un tipo Polygon y un tipo CurvePolygon

En el siguiente ejemplo se devuelve una instancia que contiene un 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. Calcular la diferencia simétrica con FullGlobe

En el siguiente ejemplo se compara la diferencia simétrica de un Polygon con 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 también

Métodos de OGC en instancias de Geography