Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca obiekt reprezentujący punkty, w których wystąpienie geograficzne przecina inne wystąpienie geograficzne .
Syntax
.STIntersection ( other_geography )
Arguments
other_geography
Jest innym wystąpieniem geograficznym , które ma być porównywane z wystąpieniem, na którym wywoływana jest funkcja STIntersection().
Typy zwracane
Typ zwracany programu SQL Server: lokalizacja geograficzna
Typ zwracany CLR: SqlGeography
Remarks
Zwracane jest skrzyżowanie dwóch wystąpień geograficznych.
Funkcja STIntersection() zawsze zwraca wartość null, jeśli identyfikatory odwołań przestrzennych (SRID) wystąpień geografii nie są zgodne.
Program SQL Server obsługuje wystąpienia przestrzenne, które są większe niż półkula. Program SQL Server może uwzględniać wystąpienia FullGlobe w zestawie możliwych wyników zwracanych na serwerze.
Wynik może zawierać segmenty łuku cyklicznego tylko wtedy, gdy wystąpienia wejściowe zawierają segmenty łuku cyklicznego.
Examples
A. Obliczanie skrzyżowania wielokąta i linii
W poniższym przykładzie użyto STIntersection() metody do obliczenia przecięcia elementów Polygon i 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. Obliczanie skrzyżowania wielokąta i krzywejpolygonu
Poniższy przykład zwraca wystąpienie, które zawiera segment łuku cyklicznego.
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. Obliczanie różnicy symetrycznej za pomocą funkcji FullGlobe
W poniższym przykładzie porównano symetryczną różnicę obiektu z Polygon wartością 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();