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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de