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 .
Zaregistrujte typ 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. Tento typ lze použít v persistovaných i nepersistovaných vypočtených sloupcích.
Conversion
Převod z geometrie na binární, varbinární, char, varchar, nchar a nvarchar musí být explicitní. Použijte CAST nebo CONVERT.
Převod z binární, varbinární, char, varchar, nchar a nvarchar do geometrie může být implicitní nebo explicitní.
Převod mezi geometrií a všemi ostatními datovými typy není povolen. To zahrnuje převod mezi geometrií a geografií. Pro přesun dat mezi těmito dvěma typy použijte metody Well-Known Binary (WKB) nebo Well-Known Text (WKT), například STAsBinary() s .STGeomFromWKB()
Převod z typu řetězce na geometrii používá stejná pravidla jako geometry::Parse(). Řetězec musí být Well-Known textu. SRID výsledku je 0.
Převod mezi geometrií a binární nebo varbinární používá SQL Server nativní serializační formát geometrie, nikoli Well-Known binární. Binární hodnota Well-Known způsobuje chybu. Pro převod do nebo z Well-Known binárního systému použijte STAsBinary() a STGeomFromWKB().
Pokud je cílový řetězec nebo binární typ příliš krátký pro danou geometrii, dochází k chybě. Hodnota není zkrácena.
Remarks
V SQL databázích v Microsoft Fabric jsou podporovány geografické a geometrické datové typy, ale nelze je zrcadlit do Fabric OneLake.
Examples
A. Ukažte, jak přidat a dotazovat geometrická data
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. Vraťte průnik 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 AS geometry;
DECLARE @geom2 AS geometry;
DECLARE @result AS 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žijte geometrii ve vypočteném 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
);