Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco de dados SQL no Microsoft Fabric
O tipo de dados espaciais de geografia, geography, é implementado como um tipo de dados CLR (Common Language Runtime) do .NET no SQL Server. Esse tipo representa dados em um sistema de coordenadas de terra redonda. O tipo de dados geography do SQL Server armazena dados elipsoidais (terra redonda), como coordenadas de latitude e longitude de GPS.
Note
No banco de dados SQL do Fabric, as colunas de Spatial Types podem ser usadas, mas não serão espelhadas no Fabric OneLake.
O SQL Server é compatível com um conjunto de métodos do tipo de dados espaciais de geography. Estão inclusos métodos de geografia que são definidos pelo padrão OGC (Open Geospatial Consortium) e um conjunto de extensões da Microsoft para esse padrão.
A tolerância de erro para os métodos de geografia pode chegar até as extensões de 1.0e-7 *. As extensões referem-se à distância máxima aproximada entre os pontos do objeto geography .
Registre o tipo de geografia
O tipo geography é predefinido e está disponível em cada banco de dados. É possível criar colunas de tabelas do tipo geography e operar em dados de geography da mesma maneira como outros tipos fornecidos pelo sistema são usados. O tipo pode ser usado em colunas computadas persistentes e não persistentes.
Conversion
A conversão da geografia para binário, varbinário, char, varchar, nchar e nvarchar deve ser explícita. Use CAST ou CONVERT.
A conversão de binário, varbinário, char, varchar, nchar e nvarchar para geografia pode ser implícita ou explícita.
Conversão entre geografia e todos os outros tipos de dados não é permitida. Isso inclui a conversão entre geografia e geometria. Para mover dados entre esses dois tipos, use os métodos Well-Known Binário (WKB) ou Texto Bem Conhecidoo (WKT), por exemplo STAsBinary() , com STGeomFromWKB().
A conversão de um tipo de string para geografia usa as mesmas regras que geography::Parse(). A sequência deve ser Texto Bem Conhecidoo. O SRID do resultado é 4326.
A conversão entre geografia e binário ou varbinário usa o formato nativo de serialização SQL Server da geografia, não Well-Known binário. Um valor binário Well-Known causa um erro. Para converter para ou a partir de Well-Known Binário, use STAsBinary() e STGeomFromWKB().
Se a cadeia de alvo ou o tipo binário for muito curto para o valor geográfico , ocorre um erro. O valor não é truncado.
Observações
No banco de dados SQL no Microsoft Fabric, tipos de dados de geografia e geometria são suportados, mas não podem ser espelhados no Fabric OneLake.
Examples
A. Mostre como adicionar e consultar dados de geografia
Os exemplos a seguir mostram como adicionar e consultar dados de geografia. O primeiro exemplo cria uma tabela com uma coluna de identidade e uma coluna de geography, a GeogCol1. Uma terceira coluna renderiza a coluna de geography em sua representação WKT (Texto Bem Conhecido) do Open Geospatial Consortium (OGC) e usa o método STAsText() . Em seguida, duas linhas são inseridas: uma linha que contém uma instância LineString de geographye uma linha que contém uma instância de 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. Devolva a interseção de duas instâncias geográficas
O exemplo a seguir usa o método STIntersection() para retornar os pontos onde as duas instâncias geography se cruzam.
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. Use geografia em uma coluna calculada
O exemplo a seguir cria uma tabela com uma coluna computada persistente usando um tipo de geografia.
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
);