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 bidimensionales 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.
-
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>.STDistance (other_geometry): calcula la distancia entre dos instancias de geometría.
-
<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.
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.
-
<geometry_instance>.STDistance (other_geometry): calcula la distancia entre dos instancias de geografía.
-
<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.
Limitaciones de Babelfish para tipos de datos geoespaciales
-
Actualmente, Babelfish no admite características más avanzadas, como los marcadores Z-M para instancias de punto de tipos de datos geoespaciales.
-
Actualmente no se admiten otros tipos de geometría distintos de las instancias de punto:
LineString
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
Para lograr un rendimiento óptimo, utilice los tipos de datos geoespaciales integrados, sin crear capas adicionales de abstracción en Babelfish.
sugerencia
Aunque puede crear tipos de datos personalizados, no se recomienda crearlos sobre datos geoespaciales. Esto podría introducir complejidades y provocar un comportamiento inesperado, debido a la compatibilidad limitada.
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.
sugerencia
Al crear funciones y procedimientos definidos por el usuario en Babelfish, evite utilizar los mismos nombres que las funciones geoespaciales integradas. Si tiene algún objeto de base de datos existente con el mismo nombre, utilice
sp_rename
para cambiarle el nombre.