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
Het geografische gegevenstype, geografie, wordt geïmplementeerd als een CLR-gegevenstype (Common Language Runtime) van .NET in SQL Server. Dit type vertegenwoordigt gegevens in een round-earth coördinaatsysteem. Het SQL Server geography-gegevenstype slaat ellipsoïde gegevens (ronde aarde) op, zoals gps-coördinaten voor breedte- en lengtegraad.
Note
In de Fabric SQL-database mogen kolommen met ruimtelijke typen worden gebruikt, maar worden ze niet gespiegeld naar Fabric OneLake.
SQL Server ondersteunt een set methoden voor het ruimtelijke gegevenstype geografie . Dit omvat methoden voor geografie die zijn gedefinieerd door de OGC-standaard (Open Geospatial Consortium) en een set Microsoft-extensies voor die standaard.
De fouttolerantie voor de geografiemethoden kan zo groot zijn als 1,0e-7 * gebieden. De gebieden verwijzen naar de geschatte maximale afstand tussen punten van het geografieobject .
Registreer het geografietype
Het geografietype is vooraf gedefinieerd en beschikbaar in elke database. U kunt tabelkolommen van het type geography maken en op geography-gegevens werken op dezelfde manier als bij andere door het systeem geleverde typen. Het type kan worden gebruikt in zowel gerepte als niet-gepersisteerde berekende kolommen.
Conversion
De omzetting van geografie naar binair, varbinair, char, varchar, nchar en nvarchar moet expliciet zijn. Gebruik CAST of CONVERT.
Conversie van binair, varbinair, char, varchar, nchar en nvarchar naar geografie kan impliciet of expliciet zijn.
Conversie tussen geografie en alle andere datatypes is niet toegestaan. Dit omvat de omzetting tussen geografie en meetkunde. Om gegevens tussen deze twee typen te verplaatsen, gebruik je de Well-Known Binary (WKB) of Well-Known Text (WKT) methoden, bijvoorbeeld STAsBinary() met STGeomFromWKB().
De conversie van een stringtype naar geografie gebruikt dezelfde regels als geography::Parse(). De string moet Well-Known Text zijn. De SRID van het resultaat is 4326.
De conversie tussen geografie en binair of varbinair gebruikt het SQL Server native serialisatieformaat van geografie, niet Well-Known binair. Een Well-Known binaire waarde veroorzaakt een fout. Om naar of van Well-Known binaire om te zetten, gebruik STAsBinary() en STGeomFromWKB().
Als de doelstring of binaire type te kort is voor de geografische waarde, ontstaat er een fout. De waarde wordt niet ingekort.
Remarks
In SQL-databases in Microsoft Fabric worden geografie- en geometriedatatypes ondersteund, maar kunnen ze niet worden gespiegeld naar de Fabric OneLake.
Examples
A. Laat zien hoe je geografische gegevens toevoegt en opvraagt
In de volgende voorbeelden ziet u hoe u geografiegegevens toevoegt en opvraagt. In het eerste voorbeeld wordt een tabel gemaakt met een identiteitskolom en een geography kolom. GeogCol1 Een derde kolom zet de kolom geography om naar de Open Geospatial Consortium (OGC) Well-Known Text (WKT)-representatie en gebruikt de methode STAsText(). Er worden vervolgens twee rijen ingevoegd: één rij bevat een LineString exemplaar van geographyen éé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),
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
B. Geef het snijpunt van twee geografische instanties terug
In het volgende voorbeeld wordt de STIntersection() methode gebruikt om de punten te retourneren waarin de twee eerder ingevoegde geography exemplaren elkaar kruisen.
DECLARE @geog1 AS geography;
DECLARE @geog2 AS geography;
DECLARE @result AS 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();
C. Gebruik geografie in een berekende kolom
In het volgende voorbeeld wordt een tabel gemaakt met een permanente berekende kolom met behulp van een geografietype .
IF OBJECT_ID('dbo.SpatialTable', 'U') IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
(
locationId INT IDENTITY (1, 1),
location geography,
deliveryArea AS location.STBuffer(10) PERSISTED
);