Crear, construir y consultar instancias de Geography

El tipo de datos espacial geography, geography, representa los datos en un sistema de coordenadas de tierra redonda. Se implementa como un tipo de datos de .NET CLR (Common Language Runtime) en SQL Server. El tipo de datos SQL Server geography almacena datos elípticos (tierra redonda), como las coordenadas de latitud y longitud del sistema GPS.

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.

En este tema

  • Crear o construir una instancia de geography

    • Crear una instancia de geography a partir de una instancia existente

    • Construir una instancia de geography a partir de datos Well-Known Text

    • Construir una instancia de geography a partir de datos Well-Known Binary

    • Para construir una instancia de geography a partir de datos de texto GML

  • Devolver Well-Known Text y Well-Known Binary a partir una instancia de geography

  • Consultar propiedades y comportamientos de instancias de geography

    • Validez, tipo de instancia e información de GeometryCollection

    • Número de puntos

    • Dimensión

    • Vacío

    • Clausura

    • Identificador de referencia espacial (SRID)

  • Determinar las relaciones entre instancias de geography

  • Las instancias de geography deben usar SRID compatibles

  • Ejemplos

[ARRIBA]

Crear o construir una instancia de geography

Crear una instancia de geography a partir de una instancia existente

El tipo de datos geography proporciona numerosos métodos integrados que puede usar para crear nuevas instancias de geography basadas en instancias existentes.

Construir una instancia de geography a partir de datos Well-Known Text

El tipo de datos geography proporciona varios métodos integrados que generan un objeto geography a partir de la representación WKT de Open Geospatial Consortium (OGC). La norma WKT consiste en una cadena de texto que permite intercambiar datos de geography de forma textual.

Construir una instancia de geography a partir de datos Well-Known Binary

WKB es un formato binario especificado por OGC que permite intercambiar datos de tipo Geography entre una aplicación cliente y una base de datos SQL. Las funciones siguientes aceptan datos WKB para construir las instancias de geography:

Para construir una instancia de geography a partir de datos de texto GML

El tipo de datos geography proporciona un método que genera una instancia de geography a partir de GML, una representación XML de una instancia de geography. SQL Server admite un subconjunto de GML.

Para obtener más información sobre el lenguaje de marcado de geografía, vea las especificaciones de OGC: OGC Specifications, Geography Markup Language.

Devolver Well-Known Text y Well-Known Binary a partir una instancia de geography

Puede usar los métodos siguientes para devolver el formato WKT o WKB de una instancia de geography:

Consultar propiedades y comportamientos de instancias de geography

Todas las instancias de geography tienen varias propiedades que se pueden recuperar a través de los métodos que SQL Server proporciona. Los temas siguientes definen las propiedades y los comportamientos de los tipos geography y los métodos para consultar cada uno.

Validez, tipo de instancia e información de GeometryCollection

Una vez construida una instancia de geography, puede usar los métodos siguientes para devolver el tipo de instancia o, si es una instancia de GeometryCollection, devolver una instancia de geography específica.

Número de puntos

Todas las instancias de geography no vacías están compuestas de puntos. Estos puntos representan las coordenadas de latitud y longitud de la tierra en la que se dibujan las instancias de geography. El tipo de datos de geography proporciona numerosos métodos integrados para consultar los puntos de una instancia.

Dimensión

Una instancia de geography no vacía puede ser no dimensional, unidimensional o bidimensional. Las instancias de geography no dimensionales, como Point y MultiPoint, no tienen ninguna longitud ni área. Los objetos unidimensionales, como LineString, CircularString, CompoundCurve y MultiLineString, tienen longitud. Las instancias bidimensionales, como Polygon, CurvePolygon y MultiPolygon, tienen área y longitud. Las instancias vacías informan de una dimensión de -1 y GeometryCollection informa de la dimensión máxima de su contenido.

Vacía

Una instancia de geography vacía no tiene ningún punto. La longitud de las instancias de LineString, CircularString, CompoundCurve y MultiLineString vacías es 0. El área de las instancias de Polygon, CurvePolygon y MultiPolygon vacías es 0.

Clausura

Una instancia cerrada geography es una figura cuyos puntos de inicio y de finalización son los mismos. Las instancias Polygon se consideran cerradas. Las instancias Point no son cerradas.

Un anillo es una instancia de LineString simple y cerrada.

Identificador de referencia espacial (SRID)

El identificador de referencia espacial (SRID) es un identificador que especifica en qué sistema de coordenadas elíptico está representada la instancia geography. No se pueden comparar dos instancias geography con SRID diferentes.

Esta propiedad se puede modificar.

Determinar las relaciones entre instancias de geography

El tipo de datos geography proporciona muchos métodos integrados que puede usar para determinar las relaciones entre dos instancias de geography.

Las instancias de geography deben usar SRID compatibles

SQL Server admite SRID basados en las normas de EPSG. Se debe usar un SID compatible con SQL Server para instancias de geography cuando se realicen cálculos o se usen los métodos con datos espaciales de geografía. El SRID debe coincidir con uno de los SRID mostrados en la vista de catálogo sys.spatial_reference_systems. Como se mencionó anteriormente, al realizar cálculos en sus datos espaciales usando el tipo de datos geography, sus resultados dependerán de qué elipsoide se usó en la creación de sus datos, ya que cada elipsoide está asignado a un identificador de referencia espacial concreto (SRID).

SQL Server usa el SRID predeterminado de 4326, que se asigna al sistema de referencia espacial WGS 84, al usar métodos en instancias de geography. Si usa datos de un sistema de referencia espacial distinto de WGS 84 (o SRID 4326), tendrá que determinar el SRID concreto para sus datos espaciales de geography.

Ejemplos

En los ejemplos siguientes se muestra cómo agregar y consultar datos geography.

  • En el primer ejemplo se crea una tabla con una columna de identidad y una columna de tipo geography, 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 continuación, se insertan dos filas: una que contiene una instancia de LineString de geography y 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
    
  • El segundo ejemplo utiliza el método STIntersection() para devolver los puntos de intersección de las dos instancias de geography insertadas previamente.

    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();
    

Vea también

Conceptos

Datos espaciales (SQL Server)