Tipos espaciales: geographySpatial Types - geography

SE APLICA A: síSQL Server síAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

El tipo de datos de geografía espacial, geography, se implementa como un tipo de datos de .NET CLR (Common Language Runtime) en SQL ServerSQL Server.The geography spatial data type, geography, is implemented as a .NET common language runtime (CLR) data type in SQL ServerSQL Server. Este tipo representa los datos en un sistema de coordenadas de tierra redonda.This type represents data in a round-earth coordinate system. El tipo de datos SQL ServerSQL Server geography data type stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.The SQL ServerSQL Server geography data type stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.

SQL ServerSQL Server admite un conjunto de métodos para el tipo de datos espacial geography.supports a set of methods for the geography spatial data type. Se incluyen los métodos de geography definidos por el estándar Open Geospatial Consortium (OGC) y un conjunto de extensiones de MicrosoftMicrosoft a dicho estándar.This includes methods on geography that are defined by the Open Geospatial Consortium (OGC) standard and a set of MicrosoftMicrosoft extensions to that standard.

La tolerancia de error para los métodos geography puede ser de hasta 1,0e-7 * extensiones.The error tolerance for the geography methods can be as large as 1.0e-7 * extents. Las extensiones hacen referencia a la distancia máxima aproximada entre los puntos del objeto geography.The extents refer to the approximate maximal distance between points of the geographyobject.

Registro del tipo de datos GeographyRegistering the geography Type

El tipo geography está predefinido y está disponible en cada base de datos.The geography type is predefined and available in each database. Puede crear columnas de tabla de tipo geography y operar con los datos geography de la misma manera que con los demás tipos proporcionados por el sistema.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. Se puede utilizar en columnas calculadas persistentes y no persistentes.Can be used in persisted and non-persisted computed columns.

EjemplosExamples

A.A. Mostrar cómo agregar y consultar datos geographyShowing how to add and query geography data

En los ejemplos siguientes se muestra cómo agregar y consultar datos geography.The following examples show how to add and query geography data. En el primer ejemplo se crea una tabla con una columna de identidad y una columna de tipo geography, GeogCol1.The first example creates a table with an identity column and a geography column, GeogCol1. Una tercera columna representa la columna de tipo geography en su representación Well-Known Text (WKT) de Open Geospatial Consortium (OGC) y utiliza el 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. A continuación se insertan dos filas: una que contiene una instancia de LineString de geographyy otra que contiene una instancia 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. Devolver la intersección de dos instancias de geographyReturning the intersection of two geography instances

En el ejemplo siguiente se utiliza el método STIntersection() para devolver los puntos de intersección de las dos instancias de geography insertadas previamente.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. Usar geography en una columna calculadaUsing geography in a computed column

En el ejemplo siguiente se crea una tabla con una columna calculada persistente mediante un tipo geography.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 tambiénSee Also

Datos espaciales (SQL Server)Spatial Data (SQL Server)