STIntersection (geografidatatyp)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar ett objekt som representerar de punkter där en geografiinstans korsar en annan geografiinstans .

Syntax

  
.STIntersection ( other_geography )  

Arguments

other_geography
Är en annan geografiinstans att jämföra med den instans där STIntersection() anropas.

Returtyper

SQL Server-returtyp: geografi

CLR-returtyp: SqlGeography

Remarks

Skärningspunkten mellan två geografiska instanser returneras.

STIntersection() returnerar alltid null om de rumsliga referensidentifierarna (SRID) för geografiinstanserna inte matchar.

SQL Server stöder rumsliga instanser som är större än en halvklot. SQL Server kan innehålla FullGlobe-instanser i uppsättningen möjliga resultat som returneras på servern.

Resultatet kan endast innehålla cirkulära bågsegment om indatainstanserna innehåller cirkulära bågsegment.

Examples

A. Beräkna skärningspunkten mellan en Polygon och en LineString

I följande exempel används STIntersection() för att beräkna skärningspunkten för en Polygon och en 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. Beräkna skärningspunkten mellan en Polygon och en CurvePolygon

I följande exempel returneras en instans som innehåller ett cirkulärt bågsegment.

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. Beräkna den symmetriska skillnaden med FullGlobe

I följande exempel jämförs den symmetriska skillnaden för en Polygon med 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();  

Se även

OGC-metoder för geografiinstanser