Babelfish 支持地理空间数据类型 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Babelfish 支持地理空间数据类型

从 3.5.0 和 4.1.0 版本开始,Babelfish 包括对以下两种空间数据类型的支持:

  • 几何数据类型 – 这种数据类型用于存储平面或欧几里得(扁平地球)数据。

  • 地理数据类型 – 这种数据类型用于存储椭圆或圆地球数据,例如 GPS 纬度和经度坐标。

这些数据类型允许存储和操作空间数据,但有限制。

了解 Babelfish 中的地理空间数据类型

  • 各种数据库对象(例如视图、过程和表)都支持地理空间数据类型。

  • 支持点数据类型,以便将位置数据存储为由纬度、经度和有效的空间参考系统标识符(SRID)定义的点。一个点可能包含 Z(海拔)、M(测量)值,并且可以为空。

  • 支持由一系列点和连接它们的线段以及有效的空间参考系统标识符(SRID)定义的线串数据类型(自版本 5.4.0 起)。线串可能包含具有 Z(海拔)、M(测量)值并且可以为空的点。

  • 通过 JDBC、ODBC、DOTNET 和 PYTHON 等驱动程序连接到 Babelfish 的应用程序可以利用此地理空间功能。

Babelfish 中支持的几何数据类型函数

  • STGeomFromText (geometry_tagged_text, SRID) – 使用熟知文本(WKT)表示法创建几何实例。

  • STPointFromText (point_tagged_text, SRID) – 使用 WKT 表示法创建点实例。

  • Point (X, Y, SRID) – 使用 x 和 y 坐标的浮点值创建点实例。

  • <geometry_instance>.STAsText ( ) – 从几何实例中提取 WKT 表示。

  • <geometry_instance>.STAsBinary ( ):从几何实例中提取 WKB 表示。

  • <geometry_instance>.STArea ( ):计算几何实例的总表面积。

  • <geometry_instance>.STSrid ( ):提取几何实例的空间参考标识符(SRID)。

  • <geometry_instance>.STDimension ( ):检索几何实例的空间维度。

  • <geometry_instance>.STIsEmpty ( ):检查几何实例是否为空。

  • <geometry_instance>.STIsClosed ( ):检查几何实例是否已关闭。

  • <geometry_instance>.STIsValid ( ):检查几何实例是否有效。

  • <geometry_instance>.STDistance (other_geometry) – 计算两个几何实例之间的距离。

  • <geometry_instance>.STEquals (other_geometry):检查几何实例表示的点集是否与其它几何实例相同。

  • <geometry_instance>.STContains (other_geometry):检查几何实例是否包含 other_geometry 实例。

  • <geometry_instance>.STDisjoint (other_geometry):检查两个几何实例是否没有共同的点。

  • <geometry_instance>.STIntersects (other_geometry):检查两个几何实例是否在空间上相交。

  • <geometry_instance>.STX – 提取几何实例的 X 坐标(经度)。

  • <geometry_instance>.STY – 提取几何实例的 Y 坐标(纬度)。

从版本 4.7.0 和 5.3.0 开始,Babelfish 包括对以下空间数据函数的支持:

  • <geometry_instance>.M:提取几何实例的 M 坐标。

  • <geometry_instance>.Z:提取几何实例的 Z 坐标。

  • <geometry_instance>.HasM:检查几何实例是否至少有一个 M 值。

  • <geometry_instance>.HasZ:检查几何实例是否至少有一个 Z 值。

从版本 5.4.0 开始,Babelfish 包括对以下空间数据函数的支持:

  • STLineFromText (linestring_tagged_text, SRID ):使用 WKT 表示创建线串实例。

Babelfish 支持的地理数据类型函数

  • STGeomFromText (geography_tagged_text, SRID) – 使用 WKT 表示法创建地理实例。

  • STPointFromText (point_tagged_text, SRID) – 使用 WKT 表示法创建点实例。

  • Point (Lat, Long, SRID) – 使用纬度和经度的浮点值创建点实例。

  • <geography_instance>.STAsText ( ) – 从地理实例中提取 WKT 表示。

  • <geography_instance>.STAsBinary ( ):从地理实例中提取 WKB 表示。

  • <geography_instance>.STArea ( ):计算地理实例的总表面积。

  • <geography_instance>.STSrid ( ):提取地理实例的空间参考标识符(SRID)。

  • <geography_instance>.STDimension ( ):检索地理实例的空间维度。

  • <geography_instance>.STIsEmpty ( ):检查地理实例是否为空。

  • <geography_instance>.STIsClosed ( ):检查地理实例是否已关闭。

  • <geography_instance>.STIsValid( ):检查地理实例是否有效。

  • <geography_instance>.STDistance (other_geography) – 计算两个地理实例之间的距离。

  • <geography_instance>.STEquals (other_geography):检查地理实例表示的点集是否与其它地理实例相同。

  • <geography_instance>.STContains (other_geography):检查地理实例是否包含 other_geography 实例。

  • <geography_instance>.STDisjoint (other_geography):检查两个地理实例是否没有共同的点。

  • <geography_instance>.STIntersects (other_geography):检查两个地理实例是否在空间上相交。

  • <geography_instance>.Lat – 提取地理实例的纬度值。

  • <geography_instance>.Long – 提取地理实例的经度值。

从版本 4.7.0 和 5.3.0 开始,Babelfish 包括对以下空间数据函数的支持:

  • <geography_instance>.M:提取地理实例的 M 坐标。

  • <geography_instance>.Z:提取地理实例的 Z 坐标。

  • <geography_instance>.HasM:检查地理实例是否至少有一个 M 值。

  • <geography_instance>.HasZ:检查地理实例是否至少有一个 Z 值。

从版本 5.4.0 开始,Babelfish 包括对以下空间数据函数的支持:

  • STLineFromText (linestring_tagged_text, SRID ):使用 WKT 表示创建线串实例。

Babelfish 中对地理空间数据类型的限制

  • 目前不支持除点和线串实例之外的几何和地理类型:

    • CircularString

    • CompoundCurve

    • Polygon

    • CurvePolygon

    • MultiPoint

    • MultiLineString

    • MultiPolygon

    • GeometryCollection

  • 目前,地理空间数据类型不支持空间索引。

  • 目前,这些数据类型仅支持这些列出的函数。有关更多信息,请参阅 Babelfish 中支持的几何数据类型函数Babelfish 支持的地理数据类型函数

  • 与 T-SQL 相比,地理数据的 STDistance 函数输出可能存在细微的精度变化。这是由于底层的 PostGIS 实现。有关更多信息,请参阅 ST_Distance

  • 与 T-SQL 相比,几何和地理数据的 STIsValid 函数输出可能存在一些偏差。因此,在某些情况下,函数(STDistance、STContains、STInstersects、STDisjoint、STDimension、STArea、STEquals)也可能与 T-SQL 有偏差(返回输出而不是引发错误)。这是由于底层的 PostGIS 实现。有关更多信息,请参阅 ST_IsValid

  • 为了获得最佳性能,可使用内置的地理空间数据类型,而无需在 Babelfish 中创建额外的抽象层。

  • 在 Babelfish 中,地理空间函数名称用作关键字,只有在按预期方式使用时才会执行空间运算。