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
Baza danych SQL w usłudze Microsoft Fabric
Typ danych przestrzennych planarnych, geometria, jest implementowany jako typ danych środowiska uruchomieniowego języka wspólnego (CLR) w programie SQL Server. Ten typ reprezentuje dane w układzie współrzędnych euklidesowych (płaskich).
Program SQL Server obsługuje zestaw metod dla typu danych przestrzennych geometrii . Metody te obejmują metody geometrii zdefiniowane przez standard Open Geospatial Consortium (OGC) i zestaw rozszerzeń firmy Microsoft do tego standardu.
Tolerancja błędów dla metod geometrycznych może być tak duża, jak 1,0e-7 * zakresów. Zakresy odnoszą się do przybliżonej maksymalnej odległości między punktami obiektu geometrii .
Rejestrowanie typu geometrii
Typ geometrii jest wstępnie zdefiniowany i dostępny w każdej bazie danych. Możesz tworzyć kolumny tabeli geometrii typu i działać na danych geometrycznych w taki sam sposób, jak w przypadku innych typów CLR. Można używać w utrwalanych i nietrwałych kolumnach obliczeniowych.
Remarks
W bazie danych SQL w usłudze Microsoft Fabric obsługiwane są typy danych geograficznych i geometrycznych , ale nie można ich dublować w usłudze Fabric OneLake.
Examples
A. Pokazywanie sposobu dodawania danych geometrycznych i wykonywania względem ich zapytań
W poniższych dwóch przykładach pokazano, jak dodawać dane geometryczne i wykonywać zapytania o nie. Pierwszy przykład tworzy tabelę z kolumną tożsamości i kolumną geometry . GeomCol1 Trzecia kolumna renderuje kolumnę geometry 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 geometry, 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),
GeomCol1 geometry,
GeomCol2 AS GeomCol1.STAsText() );
GO
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));
GO
B. Zwracanie przecięcia dwóch wystąpień geometrycznych
W drugim przykładzie STIntersection() użyto metody , aby zwrócić punkty, w których dwa wcześniej wstawione geometry wystąpienia przecinają się.
DECLARE @geom1 geometry;
DECLARE @geom2 geometry;
DECLARE @result geometry;
SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1;
SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geom1.STIntersection(@geom2);
SELECT @result.STAsText();
C. Używanie geometrii w obliczonej kolumnie
Poniższy przykład tworzy tabelę z utrwałą kolumną obliczeniową przy użyciu typu geometrii .
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
(
locationId int IDENTITY(1,1),
location geometry,
deliveryArea as location.STBuffer(10) persisted
)