H3 Index
H3 は地理空間インデックスシステムで、地球表面を均一な六角形セルのグリッドに分割します。このシステムは階層構造になっており、つまり最上位レベルの各六角形 (「親」) は、同じく均一でより小さい 7 つの六角形 (「子」) に分割でき、これがさらに繰り返されます。 この階層のレベルはresolution と呼ばれ、0 から 15 までの値を取ります。0 は、最も大きく粗いセルを持つ base レベルです。
緯度と経度の組は、グリッドセルを識別する 64 ビットの H3 インデックスに変換できます。
H3 インデックスは主に位置情報のグループ化や、そのほかの地理空間処理に使用されます。
H3 システムの完全な説明は、Uber Engineering のサイトで参照できます。
h3IsValid
数値が有効な H3 インデックスかどうかを検証します。 構文h3index— 六角形インデックス番号。UInt64
Query
Response
h3GetResolution
指定された H3 H3 インデックスの解像度を返します。 構文h3index— 六角形インデックス番号。UInt64。
- インデックスの解像度。範囲:
[0, 15]。UInt8。 - インデックスが無効な場合、この関数はランダムな値を返します。インデックスを確認するには h3IsValid を使用してください。UInt8。
Query
Response
h3EdgeAngle
H3 の六角形セルの辺の平均長をグラード単位で計算します。 構文resolution— インデックスの解像度。UInt8。範囲:[0, 15]。
Query
Response
h3EdgeLengthM
H3 の六角形の辺の平均の長さをメートル単位で計算します。 構文resolution— インデックスの解像度。UInt8。範囲:[0, 15]。
Query
Response
h3EdgeLengthKm
H3 の六角形セルの辺の平均の長さをキロメートル単位で計算します。 構文resolution— インデックスの解像度。UInt8。範囲:[0, 15]。
Query
Response
geoToH3
指定した解像度で、点(lat, lon) に対応する H3 H3 インデックスを返します。
構文
geoToH3() は (lon, lat) の順序で値を受け取ります。ClickHouse v25.5 以降では、入力値の順序は (lat, lon) です。以前の動作は、設定 geotoh3_argument_order = 'lon_lat' を使用して復元できます。
Example
Query
Response
h3ToGeo
指定されたH3H3 インデックスに対応する重心の緯度と経度を返します。 構文h3Index— H3 インデックス。 UInt64。
h3ToGeo() は (lon, lat) の順序で値を返します。ClickHouse v25.1 以降では、戻り値は (lat, lon) の順序になります。以前の動作は、設定 h3togeo_lon_lat_result_order = true を使用して復元できます。
例
Query
Response
h3ToGeoBoundary
指定されたH3 インデックスの境界に対応する(lat, lon) のペアからなる配列を返します。
構文
h3Index— H3 インデックス。UInt64。
Query
Response
h3kRing
指定された hexagon を中心とする半径k 以内のすべての H3 hexagons を、ランダムな順序で一覧表示します。
構文
Query
Response
h3PolygonToCells
指定したジオメトリ (ring または (multi-)polygon) に含まれる、指定した解像度の六角形を返します。ジオメトリが六角形の中心を含む場合、その六角形は含まれると見なされます。これは h3PolygonToCellsWithContainment の包含モード0 です。
ジオメトリのすべての頂点は球面上に存在する必要があります。経度は [-180, 180]、緯度は [-90, 90] 度の範囲内でなければなりません。返されるセルの順序は保証されないため、順序が重要な場合は Array をソートしてください。
構文
Query
Response
h3PolygonToCellsWithContainment
指定したジオメトリ (Ring または (multi-)Polygon) を、H3 の実験的な包含モードを使用して、指定した解像度の六角形セルでカバーして返します。
ジオメトリのすべての頂点は球面上になければなりません。経度は [-180, 180]、緯度は [-90, 90] 度の範囲です。返されるセルの順序は保証されないため、順序が重要な場合は Array をソートしてください。
この関数では、flags を H3 の包含モードにマッピングします。
0—CONTAINMENT_CENTER1—CONTAINMENT_FULL2—CONTAINMENT_OVERLAPPING3—CONTAINMENT_OVERLAPPING_BBOX
geometryには、次のいずれかの Geoデータ型 またはそれらの基になるプリミティブ型を指定できます。resolution— インデックスの解像度。範囲:[0, 15]。UInt8。flags— 包含モード。範囲:[0, 3]。0、1、2、3などの整数リテラル、または UInt32 の値 (たとえばtoUInt32(2)) を使用します。値はUInt32として H3 API に渡されます。その他のネイティブ整数型は、厳密なキャストによって変換されます。
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 索引同士が隣接しているかどうかを返します。 構文Query
Response
h3ToChildren
指定された H3 索引の子索引の配列を返します。 構文Query
Response
h3ToParent
指定された H3 インデックスを含む親 (より粗い粒度の) インデックスを返します。 構文- 親の H3 index。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。
Query
Response
h3IsPentagon
この H3 インデックスが五角形セルを表しているかどうかを返します。 構文index— 六角形インデックス番号。UInt64
Query
Response
h3GetFaces
指定された H3 インデックスが交差する正二十面体の面を返します。 構文index— 六角形インデックス番号。UInt64。
Query
Response
h3CellAreaM2
指定された H3 インデックスに対応する特定のセルの正確な面積を、平方メートル単位で返します。 構文index— 六角形インデックス番号。 UInt64.
- セルの面積 (平方メートル単位) 。 Float64.
Query
Response
h3CellAreaRads2
指定された入力H3 インデックスに対応する特定のセルの面積を、平方ラジアン単位で正確に返します。 構文index— 六角形インデックス番号。UInt64
- 平方ラジアンで表したセルの面積。Float64
Query
Response
h3ToCenterChild
指定した解像度で、指定した H3 に含まれる中央の子 (より細かい) H3 インデックスを返します。 構文Query
Response
h3ExactEdgeLengthM
入力されたH3 インデックスが表す単方向エッジの正確な辺の長さを、メートル単位で返します。 構文index— 六角形インデックス番号。UInt64
- 正確な辺の長さ (メートル単位) の値。Float64
Query
Response
h3ExactEdgeLengthKm
入力された h3 index が表す単方向エッジの正確な辺の長さを、キロメートル単位で返します。 構文index— 六角形インデックス番号。UInt64
- キロメートル単位の正確な辺の長さ。Float64
Query
Response
h3ExactEdgeLengthRads
入力された H3 インデックス が表す単方向エッジの正確な辺の長さを、ラジアン単位で返します。 構文index— 六角形インデックス番号。UInt64。
- ラジアン単位での正確な辺の長さ。Float64。
Query
Response
h3NumHexagons
指定された分解能における一意の H3 インデックス数を返します。 構文resolution— インデックスの解像度。範囲:[0, 15]。UInt8。
- H3 索引の数。Int64。
Query
Response
h3PointDistM
GeoCoord 点 (緯度/経度) のペア間の「大円距離」または「ハバーサイン距離」をメートル単位で返します。 構文- メートル単位のハバーサイン距離、または大円距離。Float64。
Query
Response
h3PointDistKm
GeoCoord 点 (緯度/経度) のペア間の「大円距離」または「ハバーサイン距離」を、キロメートル単位で返します。 構文- ハバーサイン距離、または大円距離 (キロメートル) 。Float64。
Query
Response
h3PointDistRads
GeoCoord 点のペア (緯度/経度) 間の「大円距離」または「ハバーサイン距離」をラジアン単位で返します。 構文- ラジアン単位のハバーサイン距離または大円距離。Float64。
Query
Response
h3GetRes0Indexes
解像度0のすべてのH3インデックスを含む配列を返します。 構文Query
Response
h3GetPentagonIndexes
指定した解像度における、すべての五角形の H3 インデックスを返します。 構文resolution— インデックスの解像度。範囲:[0, 15]。UInt8。
Query
Response
h3Line
指定された2つのインデックス間を結ぶインデックスのラインを返します。 構文Query
Response
h3Distance
指定された2つのインデックス間の距離を、グリッドセル単位で返します。 構文- グリッドセルの数。Int64
Query
Response
h3HexRing
指定された始点 h3Index を中心とする距離 k の六角形リングの索引を返します。 五角形による歪みが発生しなかった場合は 0 を返します。 構文Query
Response
h3GetUnidirectionalEdge
隣接する 2 つの H3 セルインデックス (始点と宛先) の単方向エッジ H3 インデックスを返します。いずれかの入力が有効な H3 セルでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。隣接していない有効なセル (同じセルを 2 回指定した場合を含む) の場合は、0 を返します。
構文
- 単方向エッジの六角形インデックス番号。UInt64。
Query
Response
h3UnidirectionalEdgeIsValid
指定された H3Index が有効な単方向エッジのインデックスかどうかを判定します。単方向エッジであれば 1、そうでなければ 0 を返します。 構文index— 六角形インデックス番号。UInt64。
Query
Response
h3GetOriginIndexFromUnidirectionalEdge
単方向エッジ H3Index から始点の六角形インデックスを返します。入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。この設定が有効な場合にのみ 0 を返します。
構文
edge— 単方向エッジを表す六角形インデックス番号。UInt64。
- 始点の六角形インデックス番号。UInt64。
- デフォルトでは、無効な有向エッジに対して
INCORRECT_DATAをスローします。functions_h3_default_if_invalid = 1の場合は0を返します。
Query
Response
h3GetDestinationIndexFromUnidirectionalEdge
単方向エッジの H3Index から、宛先の六角形インデックスを返します。入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。この設定が有効な場合にのみ 0 を返します。
構文
edge— 単方向エッジを表す六角形インデックス番号。UInt64。
- 宛先の六角形インデックス番号。UInt64。
- デフォルトでは、無効な有向エッジに対して
INCORRECT_DATAをスローします。functions_h3_default_if_invalid = 1の場合は0を返します。
Query
Response
h3GetIndexesFromUnidirectionalEdge
指定された単方向エッジ H3Index から、始点と宛先の六角形の索引を返します。 構文edge— 単方向エッジを表す六角形インデックス番号。UInt64。
tuple(origin,destination) で構成されるタプル:
指定された入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。その設定が有効な場合にのみ (0,0) を返します。
例
Query
Response
h3GetUnidirectionalEdgesFromHexagon
指定された H3Index から伸びるすべての単方向エッジを返します。入力が H3 セルでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御) 。この設定が有効な場合にのみ、空の Array を返します。
構文
index— cell を表す六角形インデックス番号。UInt64
- 各一方向エッジを表す H3 index の Array。Array(UInt64)。
- デフォルトでは無効な cell に対して
INCORRECT_DATAをスローします。functions_h3_default_if_invalid = 1の場合は[]を返します。
Query
Response
h3GetUnidirectionalEdgeBoundary
単方向エッジを構成する座標を返します。入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。空の Array を返すのは、その設定が有効な場合のみです。
構文
index— 単方向エッジを表す六角形インデックス番号。UInt64。
- ‘(lat, lon)’ のペアからなる Array。Array(Float64, Float64)。
- デフォルトでは無効な有向エッジに対して
INCORRECT_DATAをスローします。functions_h3_default_if_invalid = 1の場合は[]を返します。
Query
Response