跳转到主要内容

H3 索引

H3 是一种地理空间索引系统,它将地球表面划分为由大小一致的六边形单元组成的网格。该系统具有层级结构,也就是说,顶层的每个六边形 (“父级”) 都可以细分为七个同样规则但更小的六边形 (“子级”) ,以此类推。 该层级称为 resolution,取值范围为 015,其中 0base 级别,对应最大且最粗粒度的单元。 一组纬度和经度坐标可以转换为一个 64 位 H3 index,用于标识某个网格单元。 H3 index 主要用于对位置进行分桶以及其他地理空间操作。 有关 H3 系统的完整说明,请参阅 Uber Engineering 网站

h3IsValid

检查该数字是否为有效的 H3 索引。 语法
参数
  • h3index — 六边形索引编号。UInt64
返回值
  • 1 — 该数值为有效的 H3 索引。UInt8
  • 0 — 该数值不是有效的 H3 索引。UInt8
示例
Query
Response

h3GetResolution

返回给定 H3 索引的分辨率。 语法
参数
  • h3index — 六边形索引编号。UInt64
返回值
  • 索引分辨率。取值范围:[0, 15]UInt8
  • 如果索引无效,函数会返回一个随机值。请使用 h3IsValid 验证索引。UInt8
示例
Query
Response

h3EdgeAngle

计算 H3 六边形边的平均角长度 (以百分度为单位) 。 语法
参数
  • resolution — 索引分辨率。UInt8。范围:[0, 15]
返回值
  • H3 六边形边长的平均值,单位为度。Float64
示例
Query
Response

h3EdgeLengthM

计算 H3 六边形边长的平均值,单位为米。 语法
参数
  • resolution — 索引分辨率。UInt8。取值范围:[0, 15]
返回值
  • H3 六边形的平均边长,单位为米。Float64
示例
Query
Response

h3EdgeLengthKm

计算 H3 六边形边长的平均值,单位为千米。 语法
参数
  • resolution — 索引分辨率。UInt8。取值范围:[0, 15]
返回值
  • H3 六边形边长的平均值,单位为千米。Float64
示例
Query
Response

geoToH3

返回具有指定分辨率的 H3 点索引 (lat, lon) 语法
参数
  • lat — 纬度。Float64
  • lon — 经度。Float64
  • resolution — 索引分辨率。范围:[0, 15]UInt8
返回值
  • 六边形索引编号。UInt64
  • 出错时返回 0。UInt64
注意:在 ClickHouse v25.4 及更早版本中,geoToH3() 接受的参数顺序为 (lon, lat)。从 ClickHouse v25.5 起,输入值的顺序为 (lat, lon)。可使用设置 geotoh3_argument_order = 'lon_lat' 恢复此前的行为。 示例
Query
Response

h3ToGeo

返回给定 H3 索引对应的质心纬度和经度。 语法
参数
  • h3Index — H3 索引。UInt64
返回值
  • 由两个值组成的 Tuple:tuple(lat,lon)lat — 纬度。Float64lon — 经度。Float64
注意:在 ClickHouse v24.12 及更早版本中,h3ToGeo() 返回值的顺序为 (lon, lat)。从 ClickHouse v25.1 起,返回值的顺序为 (lat, lon)。可以使用设置 h3togeo_lon_lat_result_order = true 恢复之前的行为。 示例
Query
Response

h3ToGeoBoundary

返回由 (lat, lon) 对组成的数组,对应于给定 H3 索引的边界。 语法
参数
  • h3Index — H3 索引。UInt64
返回值 示例
Query
Response

h3kRing

按随机顺序列出距给定六边形 k 半径范围内的所有 H3 六边形。 语法
参数
  • h3index — 六边形索引编号。UInt64
  • k — 半径。integer
返回值 示例
Query
Response

h3PolygonToCells

返回给定几何体 (Ring 或 (多) Polygon) 所包含的指定分辨率六边形单元。 语法
参数 返回值 示例
Query
Response

h3PolygonToCellsWithContainment

使用 H3 Experimental 包含模式,返回覆盖给定几何体 (Ring 或 (多) Polygon) 且具有指定分辨率的六边形单元。 此函数将 flags 映射为 H3 包含模式:
  • 0CONTAINMENT_CENTER
  • 1CONTAINMENT_FULL
  • 2CONTAINMENT_OVERLAPPING
  • 3CONTAINMENT_OVERLAPPING_BBOX
语法
参数
  • geometry 可以是以下 Geo 数据类型 之一,或其底层基本类型:
  • resolution — 索引分辨率。范围:[0, 15]UInt8
  • flags — 包含模式。范围:[0, 3]。使用整数字面量,例如 0123,或 UInt32 值 (例如 toUInt32(2)) 。这些值会作为 UInt32 传递给 H3 API。其他原生整数类型会通过精确类型转换进行转换。
返回值
  • 根据所选包含模式返回的 H3 索引数组。Array(UInt64)。
示例
Query
Response

h3GetBaseCell

返回 H3 索引的基础单元编号。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 六边形基础单元编号。UInt8
示例
Query
Response

h3HexAreaM2

返回给定分辨率下六边形的平均面积,单位为平方米。 语法
参数
  • resolution — 索引分辨率。取值范围:[0, 15]UInt8
返回值
  • 以平方米为单位的面积。Float64
示例
Query
Response

h3HexAreaKm2

返回给定分辨率下六边形的平均面积,单位为平方千米。 语法
参数
  • resolution — 索引分辨率。范围:[0, 15]UInt8
返回值
  • 以平方千米为单位的面积。Float64
示例
Query
Response

h3IndexesAreNeighbors

返回给定的 H3 索引是否相邻。 语法
参数
  • index1 — 六边形索引编号。UInt64
  • index2 — 六边形索引编号。UInt64
返回值
  • 1 — 两个索引彼此相邻。UInt8
  • 0 — 两个索引彼此不相邻。UInt8
示例
Query
Response

h3ToChildren

返回指定 H3 索引的子索引数组。 语法
参数
  • index — 六边形索引编号。UInt64
  • resolution — 索引分辨率。范围:[0, 15]UInt8
返回值 示例
Query
Response

h3ToParent

返回包含给定 H3 索引的父索引 (较粗粒度) 。 语法
参数
  • index — 六边形索引编号。UInt64
  • resolution — 索引分辨率。范围:[0, 15]UInt8
返回值
  • 父级 H3 索引。UInt64
示例
Query
Response

h3ToString

将索引的 H3Index 表示转换为字符串表示形式。
参数
  • index — 六边形索引编号。UInt64
返回值
  • H3 索引的字符串表示形式。String
示例
Query
Response

stringToH3

将字符串表示形式转换为 H3Index (UInt64) 表示。 语法
参数
  • index_str — H3 索引的字符串表示形式。String
返回值
  • 六边形索引编号。出错时返回 0。UInt64
示例
Query
Response

h3GetResolution

返回 H3 索引的分辨率。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 索引分辨率。取值范围:[0, 15]UInt8
示例
Query
Response

h3IsResClassIII

返回 H3 索引的分辨率是否为 Class III 方向。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 1 — 该索引的分辨率采用 III 类方向。UInt8
  • 0 — 该索引的分辨率不采用 III 类方向。UInt8
示例
Query
Response

h3IsPentagon

返回此 H3 索引是否表示五边形单元。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 1 — 该索引对应一个五边形单元。UInt8
  • 0 — 该索引不对应五边形单元。UInt8
示例
Query
Response

h3GetFaces

返回与给定 H3 索引相交的二十面体各面。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 一个 数组,包含与给定 H3 索引相交的二十面体各个面。Array(UInt64)。
示例
Query
Response

h3CellAreaM2

返回给定 H3 索引对应的特定单元的精确面积,单位为平方米。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 单元面积 (平方米) 。Float64
示例
Query
Response

h3CellAreaRads2

返回给定输入 H3 索引对应的特定单元的精确面积 (以平方弧度为单位) 。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 以平方弧度表示的单元面积。Float64
示例
Query
Response

h3ToCenterChild

返回给定 H3 在指定分辨率下包含的中心子 (更细粒度) H3 索引。 语法
参数
  • index — 六边形索引编号。UInt64
  • resolution — 索引分辨率。范围:[0, 15]UInt8
返回值
  • 在给定分辨率下,给定 H3 所包含的中心子 H3 索引。UInt64
示例
Query
Response

h3ExactEdgeLengthM

返回输入 h3 索引所表示的单向边的精确长度,单位为米。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 精确边长,单位为米。Float64
示例
Query
Response

h3ExactEdgeLengthKm

返回输入 h3 索引所表示的单向边的精确长度,单位为千米。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 以千米为单位的精确边长。Float64
示例
Query
Response

h3ExactEdgeLengthRads

返回输入的 h3 索引所表示的单向边的精确长度,单位为弧度。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 以弧度表示的精确边长。Float64
示例
Query
Response

h3NumHexagons

返回指定分辨率下唯一 H3 索引的数量。 语法
参数
  • resolution — 索引分辨率。取值范围:[0, 15]UInt8
返回值
  • H3 索引数量。Int64
示例
Query
Response

h3PointDistM

返回成对的 GeoCoord 点 (纬度/经度) 之间以米为单位的“大圆”或“半正矢”距离。 语法
参数
  • lat1, lon1 — 点 1 的纬度和经度,单位为度。Float64
  • lat2, lon2 — 点 2 的纬度和经度,单位为度。Float64
返回值
  • 半正矢距离 (或大圆距离) ,单位为米。Float64
示例
Query
Response

h3PointDistKm

返回成对 GeoCoord 点 (纬度/经度) 之间的“大圆”或“半正矢”距离,单位为千米。 语法
参数
  • lat1, lon1 — 点 1 的纬度和经度,单位为度。Float64
  • lat2, lon2 — 点 2 的纬度和经度,单位为度。Float64
返回值
  • 半正矢 (大圆) 距离,单位为千米。Float64
示例
Query
Response

h3PointDistRads

返回成对 GeoCoord 点 (纬度/经度) 之间的“大圆”距离或“半正矢”距离,结果以弧度表示。 语法
参数
  • lat1, lon1 — 点 1 的纬度和经度,单位为度。Float64
  • lat2, lon2 — 点 2 的纬度和经度,单位为度。Float64
返回值
  • 以弧度为单位的半正矢距离或大圆距离。Float64
示例
Query
Response

h3GetRes0Indexes

返回包含所有分辨率 0 的 H3 索引的数组。 语法
返回值
  • 由所有分辨率为 0 的 H3 索引组成的数组。Array(UInt64)。
示例
Query
Response

h3GetPentagonIndexes

返回指定分辨率的所有五边形 H3 索引。 语法
参数
  • resolution — 索引分辨率。取值范围:[0, 15]UInt8
返回值
  • 由所有五边形 H3 索引构成的数组。Array(UInt64)。
示例
Query
Response

h3Line

返回所提供的两个索引之间的连线上的索引。 语法
参数
  • start — 表示起点的六边形索引编号。UInt64
  • end — 表示终点的六边形索引编号。UInt64
返回值 由 H3 索引组成的数组,表示两个给定索引之间的索引连线。Array(UInt64)。 示例
Query
Response

h3Distance

返回所提供的两个索引之间的距离,单位为网格单元。 语法
参数
  • start — 表示起点的六边形索引编号。UInt64
  • end — 表示终点的六边形索引编号。UInt64
返回值
  • 网格单元数量。Int64
如果无法计算距离,则返回负数。 示例
Query
Response

h3HexRing

返回以给定的 origin h3Index 为中心、长度为 k 的六边形环上的索引。 如果未遇到五边形畸变,则返回 0。 语法
参数
  • index — 表示起点的六边形索引编号。UInt64
  • k — 距离。UInt64
返回值 示例
Query
Response

h3GetUnidirectionalEdge

根据提供的起点和终点,返回一个单向边 H3 index;如果出错,则返回 0。 语法
参数
  • originIndex — 起点六边形索引编号。UInt64
  • destinationIndex — 终点六边形索引编号。UInt64
返回值
  • 单向边的六边形索引编号。UInt64
示例
Query
Response

h3UnidirectionalEdgeIsValid

判断给定的 H3Index 是否为有效的单向边索引。如果是单向边,则返回 1,否则返回 0。 语法
参数
  • index — 六边形索引编号。UInt64
返回值
  • 1 — 该 H3 索引是有效的单向边。UInt8
  • 0 — 该 H3 索引是无效的单向边。UInt8
示例
Query
Response

h3GetOriginIndexFromUnidirectionalEdge

返回单向边 H3Index 对应的起点六边形索引。 语法
参数
  • edge — 表示单向边的六边形索引编号。UInt64.
返回值
  • 起点六边形索引编号。UInt64.
示例
Query
Response

h3GetDestinationIndexFromUnidirectionalEdge

返回单向边 H3Index 对应的目标六边形索引。 语法
参数
  • edge — 表示单向边的六边形索引编号。UInt64
返回值
  • 终点六边形索引编号。UInt64
示例
Query
Response

h3GetIndexesFromUnidirectionalEdge

返回给定单向边 H3Index 对应的起点和终点六边形索引。 语法
参数
  • edge — 表示单向边的六边形索引编号。UInt64
返回值 一个由两个值组成的元组 tuple(origin,destination)
  • origin — 起点六边形索引编号。UInt64
  • destination — 终点六边形索引编号。UInt64
如果提供的输入无效,则返回 (0,0) 示例
Query
Response

h3GetUnidirectionalEdgesFromHexagon

返回给定 H3Index 的所有单向边。 语法
参数
  • index — 表示单向边的六边形索引编号。UInt64
返回值 由表示各条单向边的 H3 索引组成的数组。数组(UInt64)。 示例
Query
Response

h3GetUnidirectionalEdgeBoundary

返回定义该单向边的坐标。 语法
参数
  • index — 表示单向边的六边形索引编号。UInt64
返回值 示例
Query
Response
最后修改于 2026年7月2日