STIntersection (tipo di dati geography)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
Restituisce un oggetto che rappresenta i punti in cui un'istanza geography interseca un'altra istanza geography.
Sintassi
.STIntersection ( other_geography )
Argomenti
other_geography
Altra istanza geography da confrontare con l'istanza sulla quale viene chiamato STIntersection().
Tipi restituiti
Tipo SQL Server restituito: geography
Tipo CLR restituito: SqlGeography
Osservazioni:
Viene restituita l'intersezione di due istanze geografiche
STIntersection() restituisce sempre Null se gli identificatori SRID delle istanze geography non corrispondono.
SQL Server supporta le istanze spaziali di dimensioni maggiori di un emisfero. SQL Server potrebbe includere le istanze FullGlobe nel set di risultati possibili restituito nel server.
Il risultato può contenere segmenti di arco circolare solo se le istanze di input contengono segmenti di arco circolare.
Esempi
R. Calcolo dell'intersezione di Polygon e LineString
Nell'esempio seguente viene utilizzato STIntersection()
per calcolare l'intersezione tra Polygon
e 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. Calcolo dell'intersezione di Polygon e CurvePolygon
Nell'esempio seguente viene restituita un'istanza che contiene un segmento di arco circolare.
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. Calcolo della differenza simmetrica con FullGlobe
Nell'esempio seguente viene confrontata la differenza simmetrica di Polygon
a 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();