Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Magazyn w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Typ danych przestrzennych geography reprezentuje dane w układzie współrzędnych sferycznej ziemi. W SQL Serverze ten typ jest zaimplementowany jako typ danych wspólnego środowiska uruchomieniowego (CLR) platformy .NET. Typ danych geograficznych programu SQL Server przechowuje dane wielokropka (okrągłe ziemi), takie jak współrzędne geograficzne GPS i współrzędne geograficzne.
Typ geografii jest wstępnie zdefiniowany i dostępny w każdej bazie danych. Możesz utworzyć kolumny tabeli typu geography i działać na danych geograficznych w taki sam sposób, jak w przypadku innych typów dostarczanych przez system.
Tworzenie lub konstruowanie nowego wystąpienia geograficznego
Tworzenie nowego wystąpienia geograficznego na podstawie istniejącego wystąpienia
Typ danych geografii udostępnia wiele wbudowanych metod, których można użyć do tworzenia nowych wystąpień geograficznych na podstawie istniejących wystąpień.
Aby utworzyć bufor wokół lokalizacji geograficznej
STBuffer (typ danych geograficznych)
Aby utworzyć bufor wokół obiektu geograficznego, umożliwiając tolerancję
BufferWithTolerance (typ danych geograficznych)
Aby utworzyć lokalizację geograficzną na podstawie skrzyżowania dwóch wystąpień geograficznych
STIntersection (typ danych geograficznych)
Aby utworzyć geografię z połączenia dwóch wystąpień geograficznych
STUnion (typ danych geograficznych)
Aby utworzyć lokalizację geograficzną z punktów, w których jedna lokalizacja geograficzna nie nakłada się na drugą
StDifference (typ danych geograficznych)
Konstruowanie instancji geografii z Well-Known Text
Typ danych geograficznych zawiera kilka wbudowanych metod, które generują lokalizację geograficzną na podstawie reprezentacji WKT Open Geospatial Consortium (OGC). Standard WKT to ciąg tekstowy, który umożliwia wymianę danych geograficznych w formie tekstowej.
Aby skonstruować dowolny typ wystąpienia geograficznego z danych wejściowych WKT
STGeomFromText (typ danych geograficznych)
Analizowanie (typ danych geograficznych)
Aby utworzyć instancję obiektu geograficznego Punkt z danych wejściowych WKT
STPointFromText (typ danych geograficznych)
Aby utworzyć instancję geograficzną MultiPoint z danych wejściowych WKT
STMPointFromText (typ danych geograficznych)
Aby utworzyć wystąpienie "geography LineString" z danych wejściowych WKT
STLineFromText (typ danych geograficznych)
Aby utworzyć obiekt geography typu MultiLineString na podstawie danych wejściowych WKT
STMLineFromText (typ danych geograficznych)
Aby utworzyć instancję geograficznego Wielokąta z danych wejściowych WKT
STPolyFromText (typ danych geograficznych)
Aby utworzyć geograficzną instancję MultiPolygon na podstawie danych wejściowych WKT
STMPolyFromText (typ danych geograficznych)
Aby utworzyć wystąpienie geography GeometryCollection z danych wejściowych WKT
STGeomCollFromText (typ danych geograficznych)
Konstruowanie instancji geograficznej z wejściowych danych w formacie Well-Known Binary
WKB to format binarny określony przez OGC, który umożliwia wymianę danych geografii między aplikacją kliencką a bazą danych SQL. Następujące funkcje akceptują dane wejściowe WKB w celu konstruowania wystąpień geograficznych:
Konstruowanie dowolnego typu wystąpienia geograficznego z danych wejściowych WKB
STGeomFromWKB (typ danych geograficznych)
Aby utworzyć wystąpienie punktu geograficznego z wejściowych danych WKB
STPointFromWKB (typ danych geograficznych)
Aby utworzyć wystąpienie geograficzne MultiPoint z danych wejściowych WKB
STMPointFromWKB (typ danych geograficznych)
Aby skonstruować instancję geography LineString z danych wejściowych WKB
STLineFromWKB (typ danych geograficznych)
Aby utworzyć instancję geografii typu MultiLineString z danych wejściowych WKB
STMLineFromWKB (typ danych geograficznych)
Aby utworzyć instancję poligonu geograficznego z wejścia WKB
STPolyFromWKB (typ danych geograficznych)
Aby skonstruować wystąpienie geograficzne typu MultiPolygon z danych wejściowych WKB
STMPolyFromWKB (typ danych geograficznych)
Aby z danych wejściowych WKB utworzyć wystąpienie geography GeometryCollection
STGeomCollFromWKB (typ danych geograficznych) STGeomCollFromWKB (typ danych geograficznych)
Konstruowanie obiektu geografii na podstawie tekstu GML
Typ danych geografia udostępnia metodę, która generuje wystąpienie geografia z GML, czyli XML-owej reprezentacji wystąpienia geografia. Program SQL Server obsługuje podzestaw języka GML.
Aby uzyskać więcej informacji na temat geography Markup Language, zobacz specyfikację OGC: specyfikacje OGC, Geography Markup Language.
Tworzenie dowolnego typu wystąpienia geograficznego z danych wejściowych GML
GeomFromGML (typ danych geograficznych)
Zwracanie Well-Known tekstu i pliku binarnego Well-Known z wystąpienia lokalizacji geograficznej
Możesz użyć następujących metod, aby zwrócić format WKT lub WKB dla instancji geography:
Aby zwrócić reprezentację WKT wystąpienia geograficznego
STAsText (typ danych geograficznych)
ToString (typ danych geograficznych)
Aby zwrócić reprezentację WKT wystąpienia geograficznego, w tym wartości Z i M
AsTextZM (typ danych geograficznych)
Aby zwrócić reprezentację WKB obiektu geograficznego
STAsBinary (typ danych geograficznych)
Zwrot reprezentacji GML dla wystąpienia geograficznego
AsGml — typ danych geograficznych
Wykonywanie zapytań dotyczących właściwości i zachowań wystąpień geograficznych
Wszystkie wystąpienia geograficzne mają wiele właściwości, które można pobrać za pomocą metod zapewnianych przez program SQL Server. W poniższych tematach zdefiniowano właściwości i zachowania typów geograficznych oraz metody wykonywania zapytań względem każdego z nich.
Ważność, typ wystąpienia i informacje GeometryCollection
Po utworzeniu wystąpienia geografii można skorzystać z poniższych metod, aby zwrócić typ wystąpienia lub, jeśli jest to GeometryCollection, zwrócić konkretne wystąpienie geografii.
Aby zwrócić typ instancji geograficznej
STGeometryType (typ danych geograficznych)
Aby określić, czy lokalizacja geograficzna jest danym typem wystąpienia
InstanceOf (typ danych geograficznych)
Aby określić, czy wystąpienie geograficzne jest poprawnie sformułowane dla jego typu wystąpienia
STNumGeometries (typ danych geograficznych)
Aby zwrócić określoną lokalizację geograficzną w wystąpieniu GeometryCollection
STGeometryN (typ danych geograficznych) STGeometryN (typ danych geograficznych)
Liczba punktów
Wszystkie nieistniejące wystąpienia geograficzne składają się z punktów. Te punkty reprezentują współrzędne szerokości i długości geograficznej ziemi, na których są rysowane wystąpienia geograficzne . Typ danych geography udostępnia wiele wbudowanych metod do wykonywania zapytań dotyczących punktów instancji.
Aby zwrócić liczbę punktów tworzących instancję
STNumPoints (typ danych geograficznych)
Aby zwrócić określony punkt w wystąpieniu
STPointN (geometria typu danych)
Aby zwrócić punkt początkowy wystąpienia
STStartPoint (typ danych geograficznych)
Aby zwrócić punkt końcowy wystąpienia
STEndPoint (typ danych geograficznych)
Dimension
Niepusta instancja geograficznej może być 0-, 1- lub 2-wymiarowa. Wystąpienia geografii bezwymiarowej , takie jak Point i MultiPoint, nie mają długości ani obszaru. Obiekty jednowymiarowe, takie jak LineString, CircularString, CompoundCurve i MultiLineString, mają długość. Wystąpienia dwuwymiarowe, takie jak Polygon, CurvePolygon i MultiPolygon, mają powierzchnię i długość. Puste wystąpienia zgłaszają wymiar -1, a element GeometryCollection zgłasza maksymalny wymiar jego zawartości.
Aby zwrócić wymiar wystąpienia
STDimension (typ danych geograficznych)
Aby zwrócić długość instancji
STLength (typ danych geograficznych)
Aby zwrócić obszar wystąpienia
STArea (typ danych geograficznych)
Empty
Pusta instancjageografia nie zawiera żadnych punktów. Długość pustych wystąpień LineString, CircularString, CompoundCurve i MultiLineString wynosi 0. Obszar pustych wystąpień Polygon, CurvePolygon i MultiPolygon wynosi 0.
Aby określić, czy wystąpienie jest puste
STIsEmpty (typ danych geograficznych)
Closure
Zamkniętainstancja geograficzna jest figurą, której punkty początkowe i punkty końcowe są takie same. Wystąpienia Polygon są uznawane za zamknięte. Wystąpienia Point nie są zamykane.
Pierścień to proste, zamknięte wystąpienie LineString .
Aby określić, czy wystąpienie jest zamknięte
STIsClosed (typ danych geograficznych)
Aby zwrócić liczbę pierścieni w wystąpieniu wielokąta
NumRings (typ danych geograficznych)
Aby zwrócić określony pierścień instancji geograficznej
RingN (typ danych geograficznych)
Identyfikator odwołania przestrzennego (SRID)
Identyfikator odwołania przestrzennego (SRID) to identyfikator określający, w którym systemie współrzędnych elipsoidalnego geografia jest reprezentowane wystąpienie. Nie można porównać dwóch instancji geografii z różnymi SRID.
Aby ustawić lub zwrócić identyfikator SRID wystąpienia
STSrid (typ danych geograficznych)
Tę właściwość można zmodyfikować.
Określanie relacji między wystąpieniami geograficznymi
Typ danych geograficznych zawiera wiele wbudowanych metod, których można użyć do określania relacji między dwoma wystąpieniami geograficznymi .
Aby określić, czy dwa wystąpienia składają się z tego samego zestawu punktów
STEquals (geometria typu danych)
Aby ustalić, czy dwa wystąpienia są rozłączne
STDisjoint (typ danych geometrii)
Aby określić, czy dwa wystąpienia przecinają się
STIntersects (geometry — typ danych)
Aby określić punkt lub punkty, w których przecinają się dwa wystąpienia
STIntersection (typ danych geograficznych)
Aby określić najkrótszą odległość między punktami w dwóch wystąpieniach geograficznych
STDistance (geometryczny typ danych)
Aby określić różnicę w punktach między dwoma wystąpieniami geograficznymi
StDifference (typ danych geograficznych)
Aby uzyskać różnicę symetryczną lub unikatowe punkty jednego obiektu geograficznego w porównaniu z innym
STSymDifference (typ danych geograficznych)
Instancje geograficzne muszą używać obsługiwanego identyfikatora SRID
Program SQL Server obsługuje identyfikatory SRID oparte na standardach EPSG. Identyfikator SRID obsługiwany przez program SQL Server dla wystąpień geograficznych musi być używany podczas wykonywania obliczeń lub używania metod z danymi przestrzennymi geografii. Identyfikator SRID musi być zgodny z jednym ze identyfikatorów SRID wyświetlanych w widoku wykazu sys.spatial_reference_systems . Jak wspomniano wcześniej, podczas wykonywania obliczeń na danych przestrzennych przy użyciu typu danych geograficznych wyniki będą zależeć od tego, który wielokropek został użyty podczas tworzenia danych, ponieważ każdy wielokropek ma przypisany określony identyfikator odwołania przestrzennego (SRID).
Program SQL Server używa domyślnego identyfikatora SRID 4326, który jest mapowany na system odniesienia przestrzennego WGS 84 przy użyciu metod na instancjach geograficznych. Jeśli używasz danych z systemu referencyjnego przestrzennego innego niż WGS 84 (lub SRID 4326), musisz określić konkretny identyfikator SRID dla danych przestrzennych geografii.
Remarks
Typy geometrii i geografii nie mogą być używane jako kolumny tabel w punkcie końcowym analizy SQL w usłudze Microsoft Fabric lub w
Magazynie w usłudze Microsoft Fabric.
Examples
W poniższych przykładach pokazano, jak dodawać i wykonywać zapytania dotyczące danych geograficznych.
Przykład A.
W tym przykładzie zostanie utworzona tabela z kolumną tożsamości i kolumną geographyGeogCol1. Trzecia kolumna renderuje kolumnę geography w swojej reprezentacji Open Geospatial Consortium (OGC) Well-Known Text (WKT) i używa STAsText() metody . Następnie wstawiane są dwa wiersze: jeden wiersz zawiera LineString wystąpienie geography, a jeden wiersz zawiera Polygon wystąpienie.
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
( id int IDENTITY (1,1),
GeogCol1 geography,
GeogCol2 AS GeogCol1.STAsText()
);
GO
INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326));
INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326));
GO
Przykład B.
W tym przykładzie użyto metody STIntersection(), aby zwrócić punkty, w których przecinają się dwa wcześniej wstawione wystąpienia geography.
DECLARE @geog1 geography;
DECLARE @geog2 geography;
DECLARE @result geography;
SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1;
SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geog1.STIntersection(@geog2);
SELECT @result.STAsText();