Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w Microsoft Fabric
Typ danych przestrzennych geografii, lokalizacja geograficzna, jest implementowany jako typ danych środowiska uruchomieniowego języka wspólnego platformy .NET (CLR) w programie SQL Server. Ten typ reprezentuje dane w układzie współrzędnych okrągłych ziemi. Typ danych geography programu SQL Server przechowuje dane elipsoidalne (kuli ziemskiej), takie jak współrzędne szerokości i długości geograficznej GPS.
Note
W bazie danych SQL sieci szkieletowej kolumny typów przestrzennych mogą być używane, ale nie będą dublowane w usłudze Fabric OneLake.
Program SQL Server obsługuje zestaw metod dla typu danych przestrzennych geografii . Obejmuje to metody geografii zdefiniowane przez standard Open Geospatial Consortium (OGC) i zestaw rozszerzeń firmy Microsoft dla tego standardu.
Tolerancja błędów dla metod geograficznych może być tak duża, jak 1,0e-7 * zakresów. Zakresy odnoszą się do przybliżonej maksymalnej odległości między punktami obiektu geograficznego .
Zarejestruj typ geografii
Typ geografii jest wstępnie zdefiniowany i dostępny w każdej bazie danych. Możesz utworzyć kolumny tabeli typu geography i działać na danych geograficznych w taki sam sposób, jak w przypadku innych typów dostarczanych przez system. Typ ten może być używany zarówno w kolumnach trwałych, jak i nietrwałych.
Conversion
Przekształcenie z geografii na binarność, varbinary, char, varchar, nchar i nvarchar musi być wyraźne. Użyj CAST lub CONVERT.
Przekształcenie z binarnego, warbinarnego, char, varchar, nchar i nvarchar na geografię może być domyślne lub jawne.
Konwersja między geografią a wszystkimi innymi typami danych jest zabroniona. Obejmuje to konwersję geografii i geometrii. Aby przenosić dane między tymi dwoma typami, użyj metod Well-Known Binary (WKB) lub Well-Known Text (WKT), na przykład STAsBinary() z .STGeomFromWKB()
Przekształcenie z typu ciągu na geografię stosuje te same zasady co geography::Parse(). Ciąg musi być Well-Known tekstu. SRID tego wyniku to 4326.
Konwersja między geografią a binarną lub warbinarną wykorzystuje SQL Server natywny format serializacji geografii, a nie Well-Known binarny. Wartość binarna Well-Known powoduje błąd. Aby przeprowadzić konwersję do lub z Well-Known binarnym, użyj STAsBinary() i .STGeomFromWKB()
Jeśli docelowy ciąg lub typ binarny jest zbyt krótki względem wartości geograficznej , występuje błąd. Wartość nie jest obcięta.
Remarks
W bazie danych SQL w Microsoft Fabric obsługiwane są typy danych geograficzne i geometryczne, ale nie można ich lustrzanego odbicia do Fabric OneLake.
Examples
A. Pokaż, jak dodawać i zapytywać dane geograficzne
W poniższych przykładach pokazano, jak dodawać i wykonywać zapytania dotyczące danych geograficznych. Pierwszy przykład tworzy tabelę z kolumną tożsamości i kolumną geography . GeogCol1 Trzecia kolumna przekształca kolumnę geography do reprezentacji Open Geospatial Consortium (OGC) Well-Known Text (WKT) i używa metody STAsText(). Następnie wstawiane są dwa wiersze: jeden wiersz zawiera wystąpienie geography elementu LineString, a drugi wiersz zawiera wystąpienie Polygon.
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. Zwróć przecięcie dwóch instancji geograficznych
W poniższym przykładzie STIntersection() użyto metody , aby zwrócić punkty, w których dwa wcześniej wstawione geography wystąpienia przecinają się.
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. Użyj geografii w kolumnie obliczeniowej
Poniższy przykład tworzy tabelę z utrwałą kolumną obliczeniową przy użyciu typu geografii .
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
);