📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

ST_HILBERT



将 GEOMETRY 或 GEOGRAPHY 对象编码为 Hilbert 曲线索引。该函数使用几何对象边界框中心点作为待编码的点。提供边界时,会先将该点归一化到指定的边界框中,再进行编码。

语法

ST_HILBERT(<geometry_or_geography>) ST_HILBERT(<geometry_or_geography>, <bounds>)

参数

参数描述
<geometry_or_geography>该参数必须是 GEOMETRY 或 GEOGRAPHY 类型的表达式。
<bounds>可选。一个数组 [xmin, ymin, xmax, ymax],用于在编码前对点进行归一化。

返回类型

UInt64。

示例

GEOMETRY 示例

SELECT ST_HILBERT(TO_GEOMETRY('POINT(1 2)')) AS hilbert1, ST_HILBERT(TO_GEOMETRY('POINT(5 5)')) AS hilbert2; ╭───────────────────────────╮ │ hilbert1 │ hilbert2 │ ├─────────────┼─────────────┤ │ 3355443200 │ 2155872256 │ ╰───────────────────────────╯ SELECT ST_HILBERT(TO_GEOMETRY('POINT(1 2)'), [0, 0, 1, 1]) AS hilbert1, ST_HILBERT(TO_GEOMETRY('POINT(5 5)'), [0, 0, 5, 5]) AS hilbert2; ╭───────────────────────────╮ │ hilbert1 │ hilbert2 │ ├─────────────┼─────────────┤ │ 2863311530 │ 2863311530 │ ╰───────────────────────────╯

GEOGRAPHY 示例

SELECT ST_HILBERT(TO_GEOGRAPHY('POINT(113.15 23.06)')) AS hilbert1, ST_HILBERT(TO_GEOGRAPHY('POINT(116.25 39.54)')) AS hilbert2; ╭───────────────────────────╮ │ hilbert1 │ hilbert2 │ ├─────────────┼─────────────┤ │ 3070259060 │ 3033451300 │ ╰───────────────────────────╯ SELECT ST_HILBERT(TO_GEOGRAPHY('POINT(113.15 23.06)'), [73, 4, 135, 53]) AS hilbert1, ST_HILBERT(TO_GEOGRAPHY('POINT(116.25 39.54)'), [73, 4, 135, 53]) AS hilbert2; ╭───────────────────────────╮ │ hilbert1 │ hilbert2 │ ├─────────────┼─────────────┤ │ 3533607194 │ 2330429279 │ ╰───────────────────────────╯

文档内容是否有帮助?