Babelfish admite tipos de datos geoespaciales - Amazon Aurora

Babelfish admite tipos de datos geoespaciales

A partir de las versiones 3.5.0 y 4.1.0, Babelfish admite los dos tipos de datos espaciales siguientes:

  • Tipo de datos geométricos: este tipo de datos está indicado para almacenar datos planares o euclidianos (tierra plana).

  • Tipo de datos geográficos: este tipo de datos está diseñado para almacenar datos elipsoidales o de tierra redonda, como las coordenadas de latitud y longitud de GPS.

Estos tipos de datos permiten el almacenamiento y la manipulación de datos espaciales, pero con limitaciones.

Descripción de los tipos de datos geoespaciales en Babelfish

  • Los tipos de datos geoespaciales se admiten en varios objetos de bases de datos, como vistas, procedimientos y tablas.

  • Admite el tipo de datos de puntos para almacenar los datos de ubicación como puntos definidos por la latitud, la longitud y un identificador del sistema de referencia espacial (SRID) válido. Un punto puede contener los valores Z (elevación) y M (medida) y puede estar vacío.

  • Admite el tipo de datos de cadena de línea (a partir de la versión 5.4.0) definidos por una secuencia de puntos y los segmentos de línea que los conectan, así como un identificador del sistema de referencia espacial (SRID) válido. Una cadena de línea puede contener puntos con valores Z (elevación) y M (medida) y puede estar vacía.

  • Las aplicaciones que se conectan a Babelfish a través de controladores como JDBC, ODBC, DOTNET y PYTHON pueden utilizar esta característica geoespacial.

Funciones de tipos de datos geométricos admitidos en Babelfish

  • STGeomFromText (geometry_tagged_text, SRID): crea una instancia de geometría con la representación Well-Known Text (WKT).

  • STPointFromText (point_tagged_text, SRID): crea una instancia de punto con la representación WKT.

  • Point (X, Y, SRID): crea una instancia de punto con valores flotantes de las coordenadas x e y.

  • <geometry_instance>.STAsText ( ): extrae la representación WKT de la instancia de geometría.

  • <geometry_instance>.STAsBinary ( ): extrae la representación WKB de la instancia de geometría.

  • <geometry_instance>.STArea ( ): calcula la superficie total de la instancia de geometría.

  • <geometry_instance>.STSrid ( ): extrae el identificador de referencia espacial (SRID) de la instancia de geometría.

  • <geometry_instance>.STDimension ( ): recupera la dimensión espacial de la instancia de geometría.

  • <geometry_instance>.STIsEmpty ( ): comprueba si la instancia de geometría está vacía.

  • <geometry_instance>.STIsClosed ( ): comprueba si la instancia de geometría está cerrada.

  • <geometry_instance>.STIsValid ( ): comprueba si la instancia de geometría es válida.

  • <geometry_instance>.STDistance (other_geometry): calcula la distancia entre dos instancias de geometría.

  • <geometry_instance>.STEquals (other_geometry): comprueba si la instancia de geometría representa el mismo conjunto de puntos que otra instancia de geometría.

  • <geometry_instance>.STContains (other_geometry): comprueba si la instancia de geometría contiene la instancia other_geometry.

  • <geometry_instance>.STDisjoint (other_geometry): comprueba si dos instancias de geometría no tienen puntos en común.

  • <geometry_instance>.STIntersects (other_geometry): comprueba si dos instancias de geometría se intersectan espacialmente.

  • <geometry_instance>.STX: extrae la coordenda X (longitud) para la instancia de geometría.

  • <geometry_instance>.STY: extrae la coordenada Y (latitud) para la instancia de geometría.

A partir de las versiones 4.7.0 y 5.3.0, Babelfish admite las funciones de datos espaciales siguientes:

  • <geometry_instance>.M: extrae la coordenada M de la instancia de geometría.

  • <geometry_instance>.Z: extrae la coordenada Z de la instancia de geometría.

  • <geometry_instance>.HasM: comprueba si la instancia de geometría tiene al menos un valor M.

  • <geometry_instance>.HasZ: comprueba si la instancia de geometría tiene al menos un valor Z.

A partir de la versión 5.4.0, Babelfish admite la función de datos espaciales siguientes:

  • STLineFromText (linestring_tagged_text, SRID): crea una instancia de cadena de línea mediante la representación WKT.

Funciones de tipo de datos geográficos admitidos en Babelfish

  • STGeomFromText (geometry_tagged_text, SRID): crea una instancia de geometría con la representación WKT.

  • STPointFromText (point_tagged_text, SRID): crea una instancia de punto con la representación WKT.

  • Point (Lat, Long, SRID): crea una instancia de punto utilizando valores flotantes de latitud y longitud.

  • <geography_instance>.STAsText ( ): extrae la representación WKT de la instancia de geografía.

  • <geography_instance>.STAsBinary ( ): extrae la representación WKB de la instancia de geografía.

  • <geography_instance>.STArea ( ): calcula el área de la superficie total de la instancia de geografía.

  • <geography_instance>.STSrid ( ): extrae el identificador de referencia espacial (SRID) de la instancia de geografía.

  • <geography_instance>.STDimension ( ): recupera la dimensión espacial de la instancia de geografía.

  • <geography_instance>.STIsEmpty ( ): comprueba si la instancia de geografía está vacía.

  • <geography_instance>.STIsClosed ( ): comprueba si la instancia de geografía está cerrada.

  • <geography_instance>.STIsValid ( ): comprueba si la instancia de geografía es válida.

  • <geography_instance>.STDistance (other_geography): calcula la distancia entre dos instancias de geografía.

  • <geography_instance>.STEquals (other_geography): comprueba si la instancia de geografía representa el mismo conjunto de puntos que otra instancia de geografía.

  • <geography_instance>.STContains (other_geography): comprueba si la instancia de geografía contiene la instancia other_geography.

  • <geography_instance>.STDisjoint (other_geography): comprueba si dos instancias de geografía no tienen puntos en común.

  • <geometry_instance>.STIntersects (other_geography): comprueba si dos instancias de geografía se intersectan espacialmente.

  • <geography_instance>.Lat: extrae el valor de latitud para la instancia de geografía.

  • <geography_instance>.Long: extrae el valor de longitud para la instancia de geografía.

A partir de las versiones 4.7.0 y 5.3.0, Babelfish admite las funciones de datos espaciales siguientes:

  • <geography_instance>.M: extrae la coordenada M de la instancia de geografía.

  • <geography_instance>.Z: extrae la coordenada Z de la instancia de geografía.

  • <geography_instance>.HasM: comprueba si la instancia de geografía tiene al menos un valor M.

  • <geography_instance>.HasZ: comprueba si la instancia de geografía tiene al menos un valor Z.

A partir de la versión 5.4.0, Babelfish admite la función de datos espaciales siguientes:

  • STLineFromText (linestring_tagged_text, SRID): crea una instancia de cadena de línea mediante la representación WKT.

Limitaciones de Babelfish para tipos de datos geoespaciales

  • Actualmente no se admiten otros tipos de geometría y geografía distintos de las instancias de punto y cadena de línea:

    • CircularString

    • CompoundCurve

    • Polygon

    • CurvePolygon

    • MultiPoint

    • MultiLineString

    • MultiPolygon

    • GeometryCollection

  • Actualmente, la indexación espacial no se admite para los tipos de datos geoespaciales.

  • Para estos tipos de datos solo se admiten actualmente las funciones enumeradas. Para obtener más información, consulte Funciones de tipos de datos geométricos admitidos en Babelfish y Funciones de tipo de datos geográficos admitidos en Babelfish.

  • El resultado de la función StDistance para datos geográficos podría tener pequeñas variaciones de precisión en comparación con T-SQL. Esto se debe a la implementación subyacente de PostGIS. Para obtener más información, consulte ST_Distance

  • El resultado de la función STIsValid para datos de geometría y de geografía podría tener algunas desviaciones en comparación con T-SQL. Por este motivo, las funciones STDistance, STContains, STInstersects, STDisjoint, STDimension, STArea y STEquals también pueden desviarse de T-SQL en algunos casos (devuelve un resultado en lugar de arrojar un error). Esto se debe a la implementación subyacente de PostGIS. Para obtener más información, consulte ST_IsValid.

  • Para lograr un rendimiento óptimo, utilice los tipos de datos geoespaciales integrados, sin crear capas adicionales de abstracción en Babelfish.

  • En Babelfish, los nombres de las funciones geoespaciales se utilizan como palabras clave y solo realizarán operaciones espaciales si se utilizan de la forma prevista.