Share via


STIntersection (tipo de datos geography)

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

Sintaxis

.STIntersection ( other_geography )

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 devueltos

SQL Server tipo de valor devuelto: geography

Tipo de valor devuelto de CLR: SqlGeography

Comentarios

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();

Vea también

Otros recursos

Métodos de OGC en instancias de Geography