Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric Preview
Het ruimtelijke gegevenstype planar, geometrie, wordt geïmplementeerd als een common Language Runtime-gegevenstype (CLR) in SQL Server. Dit type vertegenwoordigt gegevens in een Euclidean (plat) coördinaatsysteem.
SQL Server ondersteunt een set methoden voor het ruimtelijke gegevenstype geometrie . Deze methoden omvatten methoden voor geometrie die zijn gedefinieerd door de OGC-standaard (Open Geospatial Consortium) en een set Microsoft-extensies voor die standaard.
De fouttolerantie voor de geometriemethoden kan zo groot zijn als 1,0e-7 * gebieden. De gebieden verwijzen naar de geschatte maximale afstand tussen punten van het geometrieobject .
Het geometrietype registreren
Het geometrietype is vooraf gedefinieerd en beschikbaar in elke database. U kunt tabelkolommen van typegeometrie maken en op geometriegegevens werken op dezelfde manier als andere CLR-typen. Kan worden gebruikt in persistente en niet-persistente berekende kolommen.
Remarks
In SQL-database in Microsoft Fabric Preview worden geografie - en geometriegegevenstypen ondersteund, maar kunnen ze niet worden gespiegeld naar de Fabric OneLake.
Examples
A. Informatie over het toevoegen en opvragen van geometriegegevens
In de volgende twee voorbeelden ziet u hoe u geometriegegevens toevoegt en opvraagt. In het eerste voorbeeld wordt een tabel gemaakt met een identiteitskolom en een geometry kolom. GeomCol1 In een derde kolom wordt de geometry kolom weergegeven in de WEERGAVE OPEN Georuimteal Consortium (OGC) Well-Known Text (WKT) en wordt de STAsText() methode gebruikt. Er worden vervolgens twee rijen ingevoegd: één rij bevat een LineString exemplaar van geometryen één rij bevat een Polygon exemplaar.
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. Het snijpunt van twee geometrie-exemplaren retourneren
In het tweede voorbeeld wordt de STIntersection() methode gebruikt om de punten te retourneren waarin de twee eerder ingevoegde geometry exemplaren elkaar kruisen.
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. Geometrie gebruiken in een berekende kolom
In het volgende voorbeeld wordt een tabel gemaakt met een permanente berekende kolom met behulp van een geometrietype .
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
)