Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
A földrajzi térbeli adattípus ( geography) .NET általános nyelvi futtatókörnyezeti (CLR) adattípusként van implementálva az SQL Serverben. Ez a típus egy ciklikus föld koordinátarendszer adatait jelöli. Az SQL Server földrajzi adattípusa három pontból álló (ciklikus föld) adatokat tárol, például GPS szélességi és hosszúsági koordinátákat.
Note
A Fabric SQL-adatbázisban térbeli típusú oszlopok használhatók, de nem lesznek tükrözve a Fabric OneLake-ben.
Az SQL Server számos módszert támogat a földrajzi térbeli adattípushoz. Ide tartoznak az Open Geospatial Consortium (OGC) szabvány által meghatározott földrajzi módszerek, valamint az adott szabványhoz tartozó Microsoft-bővítmények.
A földrajzi módszerek hibatűrése akár 1,0e-7 * kiterjedés is lehet. A mértékek a földrajzi objektum pontjai közötti hozzávetőleges maximális távolságra vonatkoznak .
A földrajzi típus regisztrálása
A földrajzi típus előre definiálva van, és minden adatbázisban elérhető. A földrajzi típusú táblaoszlopokat ugyanúgy hozhatja létre, és ugyanúgy kezelheti a földrajzi adatokat, mint a többi rendszer által biztosított típust. Tartós és nem tartós számítási oszlopokban is használható.
Remarks
A Microsoft Fabric SQL-adatbázisában a földrajzi és geometriai adattípusok támogatottak, de nem tükrözhetők a Fabric OneLake-hez.
Examples
A. Földrajzi adatok hozzáadása és lekérdezése
Az alábbi példák bemutatják, hogyan adhat hozzá és kérdezhet le földrajzi adatokat. Az első példa egy identitásoszlopot és egy oszlopot geographytartalmazó táblát GeogCol1 hoz létre. A harmadik oszlop az geography Open Geospatial Consortium (OGC) Well-Known Text (WKT) ábrázolásába jeleníti meg az oszlopot, és a metódust STAsText() használja. Ezután két sor lesz beszúrva: egy sor egy példányt LineStringgeography, egy sor pedig egy példányt Polygon tartalmaz.
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. Két földrajzi példány metszetének visszaadása
Az alábbi példa a STIntersection() metódussal adja vissza azokat a pontokat, ahol a két korábban beszúrt geography példány metszi egymást.
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. Földrajzi hely használata számított oszlopban
Az alábbi példa egy olyan táblát hoz létre, amely egy földrajzi típus használatával tartósan számított oszlopot tartalmaz.
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
);