Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Planar spatial data type, geometry, is implemented as a common language runtime (CLR) data type in SQL Server. Tento typ představuje data v euklidovském (plochém) souřadnicovém systému.
SQL Server podporuje sadu metod pro prostorový datový typ geometrie . Tyto metody zahrnují metody geometrie , které jsou definovány standardem Open Geospatial Consortium (OGC) a sadou rozšíření Microsoftu pro tento standard.
Odolnost proti chybám pro metody geometrie může být tak velká jako 1,0e-7 * rozsahů. Rozsahy odkazují na přibližnou maximální vzdálenost mezi body objektu geometrie .
Registrace typu geometrie
Typ geometrie je předdefinovaný a dostupný v každé databázi. Sloupce tabulky s geometrií typu můžete vytvářet a pracovat s daty geometrie stejným způsobem jako jiné typy CLR. Lze použít v trvalých a neuchovaných počítaných sloupcích.
Remarks
V databázi SQL v Microsoft Fabric jsou podporované datové typy geografie a geometrie , ale není možné je zrcadlit s Fabric OneLake.
Examples
A. Ukazuje, jak přidat data geometrie a dotazovat se na data geometrie.
Následující dva příklady ukazují, jak přidat a dotazovat data geometrie. První příklad vytvoří tabulku se sloupcem identity a sloupcem geometry . GeomCol1 Třetí sloupec vykreslí geometry sloupec do reprezentace Open Geospatial Consortium (OGC) Well-Known Text (WKT) a použije metodu STAsText() . Pak se vloží dva řádky: jeden řádek obsahuje LineString instanci geometrya jeden řádek obsahuje Polygon instanci.
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. Vrácení průsečíku dvou instancí geometrie
Druhý příklad používá metodu STIntersection() k vrácení bodů, kde se obě dříve vložené geometry instance protínají.
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. Použití geometrie ve počítaného sloupci
Následující příklad vytvoří tabulku s trvalým vypočítaným sloupcem pomocí typu geometrie .
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
)
Viz také