Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
Geografisk spatial datatyp, geografi, implementeras som en CLR-datatyp (.NET Common Language Runtime) i SQL Server. Den här typen representerar data i ett jorden runt koordinatsystem. Datatypen SQL Server geography lagrar ellipsoidala data (jorden runt), till exempel GPS-latitud och longitudkoordinater.
Note
I Fabric SQL-databasen tillåts kolumner med rumsliga typer att användas, men speglas inte i Fabric OneLake.
SQL Server har stöd för en uppsättning metoder för den geografiska rumsliga datatypen. Detta omfattar metoder för geografi som definieras av OGC-standarden (Open Geospatial Consortium) och en uppsättning Microsoft-tillägg till den standarden.
Feltoleransen för geografimetoderna kan vara så stor som 1,0e-7 * omfattningar. Omfattningarna refererar till det ungefärliga maximala avståndet mellan punkter i geografiobjektet .
Registrera geografitypen
Geografitypen är fördefinierad och tillgänglig i varje databas. Du kan skapa tabellkolumner av typen geografi och arbeta med geografidata på samma sätt som du använder andra typer av system som tillhandahålls. Kan användas i beständiga och icke-bevarade beräknade kolumner.
Remarks
I SQL-databasen i Förhandsversionen av Microsoft Fabric stöds datatyper för geografi och geometri , men de kan inte speglas i Fabric OneLake.
Examples
A. Visar hur du lägger till och frågar efter geografidata
I följande exempel visas hur du lägger till och frågar efter geografidata. I det första exemplet skapas en tabell med en identitetskolumn och en geography kolumn, GeogCol1. En tredje kolumn renderar geography kolumnen i dess WKT-återgivning (Open Geospatial Consortium) (OGC) Well-Known Text (WKT) och använder STAsText() metoden. Två rader infogas sedan: en rad innehåller en LineString instans av geographyoch en rad innehåller en Polygon instans.
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. Returnerar skärningspunkten mellan två geografiska instanser
I följande exempel används STIntersection() metoden för att returnera de punkter där de två tidigare infogade geography instanserna korsar varandra.
DECLARE @geog1 geography;
DECLARE @geog2 geography;
DECLARE @result 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. Använda geografi i en beräknad kolumn
I följande exempel skapas en tabell med en bevarad beräknad kolumn med en geografityp .
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
);