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
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
El tipo de datos espaciales planares, geometry, se implementa como un tipo de datos CLR (Common Language Runtime) en SQL Server. Este tipo representa datos en un sistema de coordenadas euclídeo (plano).
SQL Server admite un conjunto de métodos para el tipo de datos espaciales geography. Este métodos incluyen a su vez métodos de geometry definidos por el estándar Open Geospatial Consortium (OGC) y un conjunto de extensiones de Microsoft para dicho estándar.
La tolerancia de error para los métodos geometry puede ser de hasta 1,0e-7 * extensiones. Las extensiones hacen referencia a la distancia máxima aproximada entre puntos del objeto geometry .
Registrar el tipo de geometría
El tipo geometry está predefinido y está disponible en cada base de datos. Puede crear columnas de tabla de tipo geometry y operar con los datos geometry de la misma manera que con los demás tipos CLR. El tipo puede usarse en columnas computadas persistentes y no persistentes.
Conversion
La conversión de geometrí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 geometría puede ser implícita o explícita.
No se permite la conversión entre geometría y todos los demás tipos de datos. Esto incluye la conversión entre geometría y geografí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 geometría utiliza las mismas reglas que geometry::Parse(). La cadena debe ser Well-Known Texto. El SRID del resultado es 0.
La conversión entre geometría y binario o varbinario utiliza el formato de serialización nativo SQL Server de la geometrí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 de la geometría , se produce un error. El valor no está truncado.
Remarks
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 geometría
En los dos ejemplos siguientes se muestra cómo agregar y consultar datos de geometry. En el primer ejemplo se crea una tabla con una columna de identidad y una columna de tipo geometry, GeomCol1. Una tercera columna representa la columna de tipo geometry en su representación Well-Known Text (WKT) de 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 geometryy 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),
GeomCol1 geometry,
GeomCol2 AS GeomCol1.STAsText()
);
GO
INSERT INTO SpatialTable
(
GeomCol1
)
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
INSERT INTO SpatialTable
(
GeomCol1
)
VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));
GO
B. Devuelve la intersección de dos instancias de geometría
En el segundo ejemplo se usa el método STIntersection() para devolver los puntos de intersección de las dos instancias de geometry insertadas previamente.
DECLARE @geom1 AS geometry;
DECLARE @geom2 AS geometry;
DECLARE @result AS geometry;
SELECT @geom1 = GeomCol1
FROM SpatialTable
WHERE id = 1;
SELECT @geom2 = GeomCol1
FROM SpatialTable
WHERE id = 2;
SELECT @result = @geom1.STIntersection(@geom2);
SELECT @result.STAsText();
C. Usar geometría en una columna calculada
En el ejemplo siguiente se crea una tabla con una columna calculada persistente mediante un tipo geometry.
IF OBJECT_ID('dbo.SpatialTable', 'U') IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
(
locationId INT IDENTITY (1, 1),
location geometry,
deliveryArea AS location.STBuffer(10) PERSISTED
);