H3 索引的函数
H3 索引
H3 是一个地理索引系统,地球表面被分割成一网格均匀的六边形单元。该系统是分层的,即每个顶层的六边形(“父级”)可以分裂成七个均匀但更小的六边形(“子级”),依此类推。
层次的级别被称为 resolution
,可以接受的值从 0
到 15
,其中 0
是 base
级别,具有最大和最粗的单元。
一对纬度和经度可以转换为 64 位的 H3 索引,以标识一个网格单元。
H3 索引主要用于地点分桶和其他地理空间操作。
H3 系统的完整描述可见于 Uber Engineering 网站。
h3IsValid
验证该数字是否是有效的 H3 索引。
语法
参数
h3index
— 六边形索引数字。 UInt64。
返回值
示例
查询:
结果:
h3GetResolution
定义给定 H3 索引的分辨率。
语法
参数
h3index
— 六边形索引数字。 UInt64。
返回值
示例
查询:
结果:
h3EdgeAngle
计算给定 H3 六边形边缘的平均长度(以度数为单位)。
语法
参数
resolution
— 索引分辨率。 UInt8。范围:[0, 15]。
返回值
示例
查询:
结果:
h3EdgeLengthM
计算给定 H3 六边形边缘的平均长度(以米为单位)。
语法
参数
resolution
— 索引分辨率。 UInt8。范围:[0, 15]。
返回值
示例
查询:
结果:
h3EdgeLengthKm
计算给定 H3 六边形边缘的平均长度(以千米为单位)。
语法
参数
resolution
— 索引分辨率。 UInt8。范围:[0, 15]。
返回值
示例
查询:
结果:
geoToH3
返回指定分辨率的 H3 点索引 (lon, lat)
。
语法
参数
返回值
示例
查询:
结果:
h3ToGeo
返回与提供的 H3 索引相对应的中心点经度和纬度。
语法
参数
h3Index
— H3 索引。 UInt64。
返回值
注意:在 ClickHouse v24.12 或更早版本中,h3ToGeo()
以 (lon, lat)
的顺序返回值。根据 ClickHouse v25.1,返回值的顺序为 (lat, lon)
。可以使用设置 h3togeo_lon_lat_result_order = true
恢复先前的行为。
示例
查询:
结果:
h3ToGeoBoundary
返回与提供的 H3 索引对应的边界坐标对的数组 (lat, lon)
。
语法
参数
h3Index
— H3 索引。 UInt64。
返回值
示例
查询:
结果:
h3kRing
列出距离给定六边形 k
半径内的所有 H3 六边形,顺序随机。
语法
参数
返回值
示例
查询:
结果:
h3GetBaseCell
返回 H3 索引的基础单元号。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
- 六边形基础单元号。 UInt8。
示例
查询:
结果:
h3HexAreaM2
返回在给定分辨率下的平均六边形面积(以平方米为单位)。
语法
参数
resolution
— 索引分辨率。范围:[0, 15]。 UInt8。
返回值
- 面积(以平方米为单位)。 Float64。
示例
查询:
结果:
h3HexAreaKm2
返回在给定分辨率下的平均六边形面积(以平方千米为单位)。
语法
参数
resolution
— 索引分辨率。范围:[0, 15]。 UInt8。
返回值
- 面积(以平方千米为单位)。 Float64。
示例
查询:
结果:
h3IndexesAreNeighbors
返回所提供的 H3 索引是否是相邻的。
语法
参数
返回值
示例
查询:
结果:
h3ToChildren
返回给定 H3 索引的子索引数组。
语法
参数
返回值
示例
查询:
结果:
h3ToParent
返回包含给定 H3 索引的父级(粗糙)索引。
语法
参数
返回值
- 父 H3 索引。 UInt64。
示例
查询:
结果:
h3ToString
将 H3Index
表示的索引转换为字符串表示。
参数
index
— 六边形索引数字。 UInt64。
返回值
- H3 索引的字符串表示。 String。
示例
查询:
结果:
stringToH3
将字符串表示转换为 H3Index
(UInt64)表示。
语法
参数
index_str
— H3 索引的字符串表示。 String。
返回值
- 六边形索引数字。如果发生错误返回 0。 UInt64。
示例
查询:
结果:
h3GetResolution
返回 H3 索引的分辨率。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
- 索引分辨率。范围:[0, 15]。 UInt8。
示例
查询:
结果:
h3IsResClassIII
返回 H3 索引是否具有 Class III 定向的分辨率。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
示例
查询:
结果:
h3IsPentagon
返回此 H3 索引是否表示一个五边形单元。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
示例
查询:
结果:
h3GetFaces
返回与给定 H3 索引相交的二十面体面。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
示例
查询:
结果:
h3CellAreaM2
返回与给定 H3 索引相对应的特定单元的确切面积(以平方米为单位)。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
- 单元面积(以平方米为单位)。 Float64。
示例
查询:
结果:
h3CellAreaRads2
返回与给定 H3 索引相对应的特定单元的确切面积(以平方弧度为单位)。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
- 单元面积(以平方弧度为单位)。 Float64。
示例
查询:
结果:
h3ToCenterChild
返回指定分辨率下由给定 H3 索引包含的中心子 H3 索引。
语法
参数
返回值
示例
查询:
结果:
h3ExactEdgeLengthM
返回由输入 H3 索引表示的单向边的确切边长(以米为单位)。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
- 确切边长(以米为单位)。 Float64。
示例
查询:
结果:
h3ExactEdgeLengthKm
返回由输入 H3 索引表示的单向边的确切边长(以千米为单位)。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
- 确切边长(以千米为单位)。 Float64。
示例
查询:
结果:
h3ExactEdgeLengthRads
返回由输入 H3 索引表示的单向边的确切边长(以弧度为单位)。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
- 确切边长(以弧度为单位)。 Float64。
示例
查询:
结果:
h3NumHexagons
返回给定分辨率下唯一 H3 索引的数量。
语法
参数
resolution
— 索引分辨率。范围:[0, 15]。 UInt8。
返回值
- H3 索引的数量。 Int64。
示例
查询:
结果:
h3PointDistM
返回成对 GeoCoord 点(经度/纬度)之间的“大圆”或“哈弗辛”距离(以米为单位)。
语法
参数
返回值
- 哈弗辛或大圆距离(以米为单位)。 Float64。
示例
查询:
结果:
h3PointDistKm
返回成对 GeoCoord 点(经度/纬度)之间的“大圆”或“哈弗辛”距离(以千米为单位)。
语法
参数
返回值
- 哈弗辛或大圆距离(以千米为单位)。 Float64。
示例
查询:
结果:
h3PointDistRads
返回成对 GeoCoord 点(经度/纬度)之间的“大圆”或“哈弗辛”距离(以弧度为单位)。
语法
参数
返回值
- 哈弗辛或大圆距离(以弧度为单位)。 Float64。
示例
查询:
结果:
h3GetRes0Indexes
返回所有分辨率为 0 的 H3 索引的数组。
语法
返回值
示例
查询:
结果:
h3GetPentagonIndexes
返回指定分辨率下的所有五边形 H3 索引。
语法
参数
resolution
— 索引分辨率。范围:[0, 15]。 UInt8。
返回值
示例
查询:
结果:
h3Line
返回提供的两个索引之间的索引线。
语法
参数
返回值
表示两个提供的索引之间的索引线的 H3 索引数组。 Array(UInt64)。
示例
查询:
结果:
h3Distance
返回提供的两个索引之间的网格单元距离。
语法
参数
返回值
- 网格单元数。 Int64。
如果计算距离失败,将返回负数。
示例
查询:
结果:
h3HexRing
返回以提供的起始 H3 索引为中心并且长度为 k 的六边形环的索引。
如果没有碰到五边形扭曲,将返回 0。
语法
参数
返回值
示例
查询:
结果:
h3GetUnidirectionalEdge
返回基于提供的原点和目标的单向边 H3 索引,并在错误时返回 0。
语法
参数
返回值
- 单向边六边形索引数字。 UInt64。
示例
查询:
结果:
h3UnidirectionalEdgeIsValid
确定提供的 H3 索引是否是有效的单向边索引。如果是单向边返回 1,否则返回 0。
语法
参数
index
— 六边形索引数字。 UInt64。
返回值
示例
查询:
结果:
h3GetOriginIndexFromUnidirectionalEdge
从单向边 H3 索引中返回原始六边形索引。
语法
参数
edge
— 表示单向边的六边形索引数字。 UInt64。
返回值
- 原始六边形索引数字。 UInt64。
示例
查询:
结果:
h3GetDestinationIndexFromUnidirectionalEdge
从单向边 H3 索引中返回目标六边形索引。
语法
参数
edge
— 表示单向边的六边形索引数字。 UInt64。
返回值
- 目标六边形索引数字。 UInt64。
示例
查询:
结果:
h3GetIndexesFromUnidirectionalEdge
返回给定单向边 H3 索引的原始和目标六边形索引。
语法
参数
edge
— 表示单向边的六边形索引数字。 UInt64。
返回值
由两个值组成的元组 tuple(origin,destination)
:
如果提供的输入无效,则返回 (0,0)
。
示例
查询:
结果:
h3GetUnidirectionalEdgesFromHexagon
提供给定 H3 索引的所有单向边。
语法
参数
index
— 表示单向边的六边形索引数字。 UInt64。
返回值
表示每个单向边的 H3 索引数组。 Array(UInt64)。
示例
查询:
结果:
h3GetUnidirectionalEdgeBoundary
返回定义单向边的坐标。
语法
参数
index
— 代表单向边的六边形索引号。UInt64。
返回值
示例
查询:
结果: