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

Babelfish 支持地理空间数据类型

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

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

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

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

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

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

  • 支持二维点数据类型,以便将位置数据存储为由纬度、经度和有效的空间参考系统标识符(SRID)定义的点。

  • 通过 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>.STDistance (other_geometry) – 计算两个几何实例之间的距离。

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

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

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

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

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

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

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

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

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

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

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

  • 目前,Babelfish 不支持更高级功能,例如用于地理空间数据类型的点实例的 Z-M 标志。

  • 目前不支持点实例以外的几何类型:

    • LineString

    • CircularString

    • CompoundCurve

    • Polygon

    • CurvePolygon

    • MultiPoint

    • MultiLineString

    • MultiPolygon

    • GeometryCollection

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

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

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

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

    提示

    虽然您可以创建自定义数据类型,但不建议基于地理空间数据进行创建。这可能会带来复杂性,并且由于支持有限,可能会导致意外行为。

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

    提示

    在 Babelfish 中创建用户定义的函数和过程时,请避免使用与内置地理空间函数相同的名称。如果您有任何同名的现有数据库对象,请使用 sp_rename 重命名它们。