Tipos espaciais – geografiaSpatial Types - geography

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

O tipo de dados espaciais de geografia, geography, é implementado como um tipo de dados CLR (Common Language Runtime) do .NET no SQL ServerSQL Server.The geography spatial data type, geography, is implemented as a .NET common language runtime (CLR) data type in SQL ServerSQL Server. Esse tipo representa dados em um sistema de coordenadas de terra redonda.This type represents data in a round-earth coordinate system. O tipo de dados de geografia do SQL ServerSQL Server geography armazena dados elipsoidais (terra redonda), como coordenadas de latitude e longitude de GPS.The SQL ServerSQL Server geography data type stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.

O SQL ServerSQL Server é compatível com um conjunto de métodos do tipo de dados espaciais de geografia.SQL ServerSQL Server supports a set of methods for the geography spatial data type. 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 MicrosoftMicrosoft para esse padrão.This includes methods on geography that are defined by the Open Geospatial Consortium (OGC) standard and a set of MicrosoftMicrosoft extensions to that standard.

A tolerância de erro para os métodos de geografia pode chegar até as extensões de 1.0e-7 *.The error tolerance for the geography methods can be as large as 1.0e-7 * extents. As extensões referem-se à distância máxima aproximada entre os pontos do objeto de geografia.The extents refer to the approximate maximal distance between points of the geographyobject.

Registrando o tipo de geografiaRegistering the geography Type

O tipo geography é predefinido e está disponível em cada banco de dados.The geography type is predefined and available in each database. É 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.You can create table columns of type geography and operate on geography data in the same manner as you would use other system-supplied types. Pode ser usado em colunas computadas persistidas e não persistidas.Can be used in persisted and non-persisted computed columns.

ExemplosExamples

A.A. Mostrando como adicionar e consultar dados de geografiaShowing how to add and query geography data

Os exemplos a seguir mostram como adicionar e consultar dados de geografia.The following examples show how to add and query geography data. O primeiro exemplo cria uma tabela com uma coluna de identidade e uma coluna de geography, a GeogCol1.The first example creates a table with an identity column and a geography column, GeogCol1. Uma terceira coluna renderiza a coluna de geography em sua representação WKT (Well-Known Text) do Open Geospatial Consortium (OGC) e usa o método STAsText() .A third column renders the geography column into its Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation, and uses the STAsText() method. 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 .Two rows are then inserted: one row contains a LineString instance of geography, and one row contains a Polygon instance.

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.B. Retornando a interseção de duas instâncias de geografiaReturning the intersection of two geography instances

O exemplo a seguir usa o método STIntersection() para retornar os pontos onde as duas instâncias geography se cruzam.The following example uses the STIntersection() method to return the points where the two previously inserted geography instances intersect.

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.C. Usando geografia em uma coluna computadaUsing geography in a computed column

O exemplo a seguir cria uma tabela com uma coluna computada persistente usando um tipo de geografia.The following example creates a table with a persisted computed column using a geography type.

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  
)  

Consulte TambémSee Also

Dados espaciais (SQL Server)Spatial Data (SQL Server)