Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de datos SQL en Microsoft Fabric
El tipo de datos de geografía espacial, geography, se implementa como un tipo de datos de .NET CLR (Common Language Runtime) en SQL Server. Este tipo representa los datos en un sistema de coordenadas de tierra redonda. El tipo de datos SQL Server geography almacena datos elipsoidales (globo), como coordenadas de latitud y longitud de GPS.
Note
En la base de datos SQL de Fabric, se permiten usar columnas de tipos espaciales, pero no se reflejarán en Fabric OneLake.
SQL Server admite un conjunto de métodos para el tipo de datos espacial geography. Se incluyen los métodos de geography definidos por el estándar Open Geospatial Consortium (OGC) y un conjunto de extensiones de Microsoft a dicho estándar.
La tolerancia de error para los métodos geography puede ser de hasta 1,0e-7 * extensiones. Las extensiones hacen referencia a la distancia máxima aproximada entre puntos del objeto geography .
Registrar el tipo de geografía
El tipo geography está predefinido y está disponible en cada base de datos. 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. El tipo puede usarse en columnas computadas persistentes y no persistentes.
Conversion
La conversión de geografía a binario, varbinario, char, varchar, nchar y nvarchar debe ser explícita. Utilice CAST o CONVERT.
La conversión de binario, varbinario, char, varchar, nchar y nvarchar a geografía puede ser implícita o explícita.
No se permite la conversión entre geografía y todos los demás tipos de datos. Esto incluye la conversión entre geografía y geometría. Para mover datos entre estos dos tipos, utiliza los métodos Well-Known Binary (WKB) o Well-Known Text (WKT), por ejemplo STAsBinary() con STGeomFromWKB().
La conversión de un tipo de cadena a geografía utiliza las mismas reglas que geography::Parse(). La cadena debe ser Well-Known Texto. El SRID del resultado es 4326.
La conversión entre geografía y binario o varbinario utiliza el formato SQL Server nativo de serialización de la geografía, no Well-Known binario. Un valor binario Well-Known causa un error. Para convertir a o desde Well-Known binario, use STAsBinary() y STGeomFromWKB().
Si la cadena objetivo o el tipo binario es demasiado corto para el valor geográfico , se produce un error. El valor no está truncado.
Comentarios
En la base de datos SQL en Microsoft Fabric, se admiten los tipos de datos de geografía y geometría, pero no se pueden reflejar en el Fabric OneLake.
Examples
A. Mostrar cómo añadir y consultar datos de geografía
Los siguientes ejemplos muestran cómo añadir y consultar datos de tipo geography. En el primer ejemplo se crea una tabla con una columna de identidad y una columna de tipo geography, GeogCol1. Una tercera columna convierte la columna geography a su representación Well-Known Text (WKT) del Open Geospatial Consortium (OGC) y utiliza el método STAsText(). A continuación se insertan dos filas: una que contiene una instancia de LineString de geographyy otra que contiene una instancia 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. Devuelve la intersección de dos instancias geográficas
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.
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. Utiliza la geografía en una columna calculada
En el ejemplo siguiente se crea una tabla con una columna calculada persistente mediante un tipo geography.
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
);