> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-home-button.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> H3 に関するドキュメント

# H3 インデックス を操作する関数

<div id="h3-index">
  ## H3 Index
</div>

[H3](https://h3geo.org/) は地理空間インデックスシステムで、地球表面を均一な六角形セルのグリッドに分割します。このシステムは階層構造になっており、つまり最上位レベルの各六角形 (「親」) は、同じく均一でより小さい 7 つの六角形 (「子」) に分割でき、これがさらに繰り返されます。

この階層のレベルは `resolution` と呼ばれ、`0` から `15` までの値を取ります。`0` は、最も大きく粗いセルを持つ `base` レベルです。

緯度と経度の組は、グリッドセルを識別する 64 ビットの H3 インデックスに変換できます。

H3 インデックスは主に位置情報のグループ化や、そのほかの地理空間処理に使用されます。

H3 システムの完全な説明は、[Uber Engineering のサイト](https://www.uber.com/blog/h3/)で参照できます。

<div id="h3isvalid">
  ## h3IsValid
</div>

数値が有効な [H3](#h3-index) インデックスかどうかを検証します。

**構文**

```sql theme={null}
h3IsValid(h3index)
```

**パラメータ**

* `h3index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)

**戻り値**

* 1 — この数値は有効な H3 インデックスです。[UInt8](/ja/reference/data-types/int-uint)
* 0 — この数値は有効な H3 インデックスではありません。[UInt8](/ja/reference/data-types/int-uint)

**例**

```sql title="Query" theme={null}
SELECT h3IsValid(630814730351855103) AS h3IsValid;
```

```text title="Response" theme={null}
┌─h3IsValid─┐
│         1 │
└───────────┘
```

<div id="h3getresolution">
  ## h3GetResolution
</div>

指定された [H3](#h3-index) H3 インデックスの解像度を返します。

**構文**

```sql theme={null}
h3GetResolution(h3index)
```

**パラメータ**

* `h3index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* インデックスの解像度。範囲: `[0, 15]`。[UInt8](/ja/reference/data-types/int-uint)。
* インデックスが無効な場合、この関数はランダムな値を返します。インデックスを確認するには [h3IsValid](#h3isvalid) を使用してください。[UInt8](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
SELECT h3GetResolution(639821929606596015) AS resolution;
```

```text title="Response" theme={null}
┌─resolution─┐
│         14 │
└────────────┘
```

<div id="h3edgeangle">
  ## h3EdgeAngle
</div>

[H3](#h3-index) の六角形セルの辺の平均長をグラード単位で計算します。

**構文**

```sql theme={null}
h3EdgeAngle(resolution)
```

**パラメータ**

* `resolution` — インデックスの解像度。[UInt8](/ja/reference/data-types/int-uint)。範囲: `[0, 15]`。

**戻り値**

* [H3](#h3-index) 六角形の辺の平均長 (グレード) 。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3EdgeAngle(10) AS edgeAngle;
```

```text title="Response" theme={null}
┌───────h3EdgeAngle(10)─┐
│ 0.0005927224846720883 │
└───────────────────────┘
```

<div id="h3edgelengthm">
  ## h3EdgeLengthM
</div>

[H3](#h3-index) の六角形の辺の平均の長さをメートル単位で計算します。

**構文**

```sql theme={null}
h3EdgeLengthM(resolution)
```

**パラメータ**

* `resolution` — インデックスの解像度。[UInt8](/ja/reference/data-types/int-uint)。範囲: `[0, 15]`。

**戻り値**

* [H3](#h3-index) の六角形の平均辺長 (メートル単位) 。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3EdgeLengthM(15) AS edgeLengthM;
```

```text title="Response" theme={null}
┌─edgeLengthM─┐
│ 0.509713273 │
└─────────────┘
```

<div id="h3edgelengthkm">
  ## h3EdgeLengthKm
</div>

[H3](#h3-index) の六角形セルの辺の平均の長さをキロメートル単位で計算します。

**構文**

```sql theme={null}
h3EdgeLengthKm(resolution)
```

**パラメータ**

* `resolution` — インデックスの解像度。[UInt8](/ja/reference/data-types/int-uint)。範囲: `[0, 15]`。

**戻り値**

* [H3](#h3-index) の六角形の辺の平均の長さ (キロメートル) 。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3EdgeLengthKm(15) AS edgeLengthKm;
```

```text title="Response" theme={null}
┌─edgeLengthKm─┐
│  0.000509713 │
└──────────────┘
```

<div id="geotoh3">
  ## geoToH3
</div>

指定した解像度で、点 `(lat, lon)` に対応する [H3](#h3-index) H3 インデックスを返します。

**構文**

```sql theme={null}
geoToH3(lat, lon, resolution)
```

**Arguments**

* `lat` — 緯度。 [Float64](/ja/reference/data-types/float).
* `lon` — 経度。 [Float64](/ja/reference/data-types/float).
* `resolution` — インデックスの解像度。範囲: `[0, 15]`。 [UInt8](/ja/reference/data-types/int-uint).

**戻り値**

* 六角形インデックス番号。 [UInt64](/ja/reference/data-types/int-uint).
* エラー時は 0。 [UInt64](/ja/reference/data-types/int-uint).

注: ClickHouse v25.4 以前では、`geoToH3()` は `(lon, lat)` の順序で値を受け取ります。ClickHouse v25.5 以降では、入力値の順序は `(lat, lon)` です。以前の動作は、設定 `geotoh3_argument_order = 'lon_lat'` を使用して復元できます。

**Example**

```sql title="Query" theme={null}
SELECT geoToH3(55.71290588, 37.79506683, 15) AS h3Index;
```

```text title="Response" theme={null}
┌────────────h3Index─┐
│ 644325524701193974 │
└────────────────────┘
```

<div id="h3togeo">
  ## h3ToGeo
</div>

指定された[H3](#h3-index)H3 インデックスに対応する重心の緯度と経度を返します。

**構文**

```sql theme={null}
h3ToGeo(h3Index)
```

**引数**

* `h3Index` — H3 インデックス。 [UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* 2 つの値で構成されるタプル: `tuple(lat,lon)`。`lat` — 緯度。 [Float64](/ja/reference/data-types/float)。 `lon` — 経度。 [Float64](/ja/reference/data-types/float)。

注: ClickHouse v24.12 以前では、`h3ToGeo()` は `(lon, lat)` の順序で値を返します。ClickHouse v25.1 以降では、戻り値は `(lat, lon)` の順序になります。以前の動作は、設定 `h3togeo_lon_lat_result_order = true` を使用して復元できます。

**例**

```sql title="Query" theme={null}
SELECT h3ToGeo(644325524701193974) AS coordinates;
```

```text title="Response" theme={null}
┌─coordinates───────────────────────────┐
│ (55.71290243145668,37.79506616830252) │
└───────────────────────────────────────┘
```

<div id="h3togeoboundary">
  ## h3ToGeoBoundary
</div>

指定されたH3 インデックスの境界に対応する `(lat, lon)` のペアからなる配列を返します。

**構文**

```sql theme={null}
h3ToGeoBoundary(h3Index)
```

**引数**

* `h3Index` — H3 インデックス。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* '(lat, lon)' のペアからなる Array。[Array](/ja/reference/data-types/array)([Float64](/ja/reference/data-types/float), [Float64](/ja/reference/data-types/float))。

**例**

```sql title="Query" theme={null}
SELECT h3ToGeoBoundary(644325524701193974) AS coordinates;
```

```text title="Response" theme={null}
┌─h3ToGeoBoundary(599686042433355775)────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [(37.2713558667319,-121.91508032705622),(37.353926450852256,-121.8622232890249),(37.42834118609435,-121.92354999630156),(37.42012867767779,-122.03773496427027),(37.33755608435299,-122.090428929044),(37.26319797461824,-122.02910130919001)] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="h3kring">
  ## h3kRing
</div>

指定された hexagon を中心とする半径 `k` 以内のすべての [H3](#h3-index) hexagons を、ランダムな順序で一覧表示します。

**構文**

```sql theme={null}
h3kRing(h3index, k)
```

**引数**

* `h3index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)
* `k` — 半径。[整数](/ja/reference/data-types/int-uint)

**戻り値**

* H3インデックスのArray。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
SELECT arrayJoin(h3kRing(644325529233966508, 1)) AS h3index;
```

```text title="Response" theme={null}
┌────────────h3index─┐
│ 644325529233966508 │
│ 644325529233966497 │
│ 644325529233966510 │
│ 644325529233966504 │
│ 644325529233966509 │
│ 644325529233966355 │
│ 644325529233966354 │
└────────────────────┘
```

<div id="h3polygontocells">
  ## h3PolygonToCells
</div>

指定したジオメトリ (ring または (multi-)polygon) に含まれる、指定した resolution の六角形を返します。

**構文**

```sql theme={null}
h3PolygonToCells(geometry, resolution)
```

**引数**

* `geometry` には、以下のいずれかの [Geoデータ型](/ja/reference/data-types/geo) またはその基になるプリミティブ型を指定できます。
  * [Ring](/ja/reference/data-types/geo#ring)
  * [Polygon](/ja/reference/data-types/geo#polygon)
  * [MultiPolygon](/ja/reference/data-types/geo#multipolygon)
* `resolution` — インデックスの解像度。範囲: `[0, 15]`。[UInt8](/ja/reference/data-types/int-uint)。

**戻り値**

* 含まれる H3 インデックス の Array。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
SELECT h3PolygonToCells([(-122.4089866999972145,37.813318999983238),(-122.3544736999993603,37.7198061999978478),(-122.4798767000009008,37.8151571999998453)], 7) AS h3index;
```

```text title="Response" theme={null}
┌────────────h3index─┐
│ 608692970769612799 │
│ 608692971927240703 │
│ 608692970585063423 │
│ 608692970819944447 │
│ 608692970719281151 │
│ 608692970752835583 │
│ 608692972027903999 │
└────────────────────┘
```

<div id="h3getbasecell">
  ## h3GetBaseCell
</div>

[H3](#h3-index) インデックスのベースセル番号を返します。

**構文**

```sql theme={null}
h3GetBaseCell(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* 六角形のベースセルの番号。[UInt8](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
SELECT h3GetBaseCell(612916788725809151) AS basecell;
```

```text title="Response" theme={null}
┌─basecell─┐
│       12 │
└──────────┘
```

<div id="h3hexaream2">
  ## h3HexAreaM2
</div>

指定した解像度における六角形の平均面積を平方メートル単位で返します。

**構文**

```sql theme={null}
h3HexAreaM2(resolution)
```

**パラメーター**

* `resolution` — インデックスの解像度。範囲は `[0, 15]` です。[UInt8](/ja/reference/data-types/int-uint)。

**戻り値**

* 平方メートル単位の面積。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3HexAreaM2(13) AS area;
```

```text title="Response" theme={null}
┌─area─┐
│ 43.9 │
└──────┘
```

<div id="h3hexareakm2">
  ## h3HexAreaKm2
</div>

指定した解像度における六角形の平均面積を平方キロメートル単位で返します。

**構文**

```sql theme={null}
h3HexAreaKm2(resolution)
```

**パラメータ**

* `resolution` — インデックスの解像度。範囲: `[0, 15]`。 [UInt8](/ja/reference/data-types/int-uint)。

**戻り値**

* 面積 (平方キロメートル) 。 [Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3HexAreaKm2(13) AS area;
```

```text title="Response" theme={null}
┌──────area─┐
│ 0.0000439 │
└───────────┘
```

<div id="h3indexesareneighbors">
  ## h3IndexesAreNeighbors
</div>

指定された [H3](#h3-index) 索引同士が隣接しているかどうかを返します。

**構文**

```sql theme={null}
h3IndexesAreNeighbors(index1, index2)
```

**引数**

* `index1` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。
* `index2` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* `1` — インデックス同士は隣接しています。[UInt8](/ja/reference/data-types/int-uint)。
* `0` — インデックス同士は隣接していません。[UInt8](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
SELECT h3IndexesAreNeighbors(617420388351344639, 617420388352655359) AS n;
```

```text title="Response" theme={null}
┌─n─┐
│ 1 │
└───┘
```

<div id="h3tochildren">
  ## h3ToChildren
</div>

指定された [H3](#h3-index) 索引の子索引の配列を返します。

**構文**

```sql theme={null}
h3ToChildren(index, resolution)
```

**引数**

* `index` — 六角形インデックス番号。 [UInt64](/ja/reference/data-types/int-uint)。
* `resolution` — インデックスの解像度。範囲: `[0, 15]`。 [UInt8](/ja/reference/data-types/int-uint)。

**戻り値**

* 子 H3 インデックスの Array。 [Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
SELECT h3ToChildren(599405990164561919, 6) AS children;
```

```text title="Response" theme={null}
┌─children───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [603909588852408319,603909588986626047,603909589120843775,603909589255061503,603909589389279231,603909589523496959,603909589657714687] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="h3toparent">
  ## h3ToParent
</div>

指定された [H3](#h3-index) インデックスを含む親 (より粗い粒度の) インデックスを返します。

**構文**

```sql theme={null}
h3ToParent(index, resolution)
```

**引数**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)
* `resolution` — インデックスの解像度。範囲: `[0, 15]`。[UInt8](/ja/reference/data-types/int-uint)

**戻り値**

* 親の H3 index。[UInt64](/ja/reference/data-types/int-uint)

**例**

```sql title="Query" theme={null}
SELECT h3ToParent(599405990164561919, 3) AS parent;
```

```text title="Response" theme={null}
┌─────────────parent─┐
│ 590398848891879423 │
└────────────────────┘
```

<div id="h3tostring">
  ## h3ToString
</div>

インデックスの `H3Index` 表現を文字列表現に変換します。

```sql theme={null}
h3ToString(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* H3インデックスの文字列表現。[String](/ja/reference/data-types/string)。

**例**

```sql title="Query" theme={null}
SELECT h3ToString(617420388352917503) AS h3_string;
```

```text title="Response" theme={null}
┌─h3_string───────┐
│ 89184926cdbffff │
└─────────────────┘
```

<div id="stringtoh3">
  ## stringToH3
</div>

文字列表現を `H3Index` (UInt64) 形式に変換します。

**構文**

```sql theme={null}
stringToH3(index_str)
```

**パラメーター**

* `index_str` — H3インデックスの文字列表現。[String](/ja/reference/data-types/string)

**戻り値**

* 六角形インデックス番号。エラー時は 0 を返します。[UInt64](/ja/reference/data-types/int-uint)

**例**

```sql title="Query" theme={null}
SELECT stringToH3('89184926cc3ffff') AS index;
```

```text title="Response" theme={null}
┌──────────────index─┐
│ 617420388351344639 │
└────────────────────┘
```

<div id="h3getresolution">
  ## h3GetResolution
</div>

[H3](#h3-index) インデックスの解像度を返します。

**構文**

```sql theme={null}
h3GetResolution(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint).

**戻り値**

* インデックスの解像度。範囲: `[0, 15]`。[UInt8](/ja/reference/data-types/int-uint).

**例**

```sql title="Query" theme={null}
SELECT h3GetResolution(617420388352917503) AS res;
```

```text title="Response" theme={null}
┌─res─┐
│   9 │
└─────┘
```

<div id="h3isresclassiii">
  ## h3IsResClassIII
</div>

[H3](#h3-index) インデックスが Class III 向きの解像度かどうかを返します。

**構文**

```sql theme={null}
h3IsResClassIII(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* `1` — インデックスの解像度が Class III オリエンテーションである。[UInt8](/ja/reference/data-types/int-uint)。
* `0` — インデックスの解像度が Class III オリエンテーションではない。[UInt8](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
SELECT h3IsResClassIII(617420388352917503) AS res;
```

```text title="Response" theme={null}
┌─res─┐
│   1 │
└─────┘
```

<div id="h3ispentagon">
  ## h3IsPentagon
</div>

この [H3](#h3-index) インデックスが五角形セルを表しているかどうかを返します。

**構文**

```sql theme={null}
h3IsPentagon(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)

**戻り値**

* `1` — インデックスが五角形セルを表す場合。[UInt8](/ja/reference/data-types/int-uint)
* `0` — インデックスが五角形セルを表さない場合。[UInt8](/ja/reference/data-types/int-uint)

**例**

```sql title="Query" theme={null}
SELECT h3IsPentagon(644721767722457330) AS pentagon;
```

```text title="Response" theme={null}
┌─pentagon─┐
│        0 │
└──────────┘
```

<div id="h3getfaces">
  ## h3GetFaces
</div>

指定された [H3](#h3-index) インデックスが交差する正二十面体の面を返します。

**構文**

```sql theme={null}
h3GetFaces(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* 指定された H3インデックスと交差する正二十面体の面を含む Array。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
SELECT h3GetFaces(599686042433355775) AS faces;
```

```text title="Response" theme={null}
┌─faces─┐
│ [7]   │
└───────┘
```

<div id="h3cellaream2">
  ## h3CellAreaM2
</div>

指定された H3 インデックスに対応する特定のセルの正確な面積を、平方メートル単位で返します。

**構文**

```sql theme={null}
h3CellAreaM2(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。 [UInt64](/ja/reference/data-types/int-uint).

**戻り値**

* セルの面積 (平方メートル単位) 。 [Float64](/ja/reference/data-types/float).

**例**

```sql title="Query" theme={null}
SELECT h3CellAreaM2(579205133326352383) AS area;
```

```text title="Response" theme={null}
┌───────────────area─┐
│ 4106166334463.9233 │
└────────────────────┘
```

<div id="h3cellarearads2">
  ## h3CellAreaRads2
</div>

指定された入力H3 インデックスに対応する特定のセルの面積を、平方ラジアン単位で正確に返します。

**構文**

```sql theme={null}
h3CellAreaRads2(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)

**戻り値**

* 平方ラジアンで表したセルの面積。[Float64](/ja/reference/data-types/float)

**例**

```sql title="Query" theme={null}
SELECT h3CellAreaRads2(579205133326352383) AS area;
```

```text title="Response" theme={null}
┌────────────────area─┐
│ 0.10116268528089567 │
└─────────────────────┘
```

<div id="h3tocenterchild">
  ## h3ToCenterChild
</div>

指定した解像度で、指定した [H3](#h3-index) に含まれる中央の子 (より細かい) [H3](#h3-index) インデックスを返します。

**構文**

```sql theme={null}
h3ToCenterChild(index, resolution)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。
* `resolution` — インデックスの解像度。範囲: `[0, 15]`。[UInt8](/ja/reference/data-types/int-uint)。

**戻り値**

* 指定した解像度における、指定された [H3](#h3-index) に含まれる中心の子 [H3](#h3-index) のインデックス。[UInt64](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
SELECT h3ToCenterChild(577023702256844799,1) AS centerToChild;
```

```text title="Response" theme={null}
┌──────centerToChild─┐
│ 581496515558637567 │
└────────────────────┘
```

<div id="h3exactedgelengthm">
  ## h3ExactEdgeLengthM
</div>

入力されたH3 インデックスが表す単方向エッジの正確な長さを、メートル単位で返します。

**構文**

```sql theme={null}
h3ExactEdgeLengthM(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)

**戻り値**

* 辺の長さ (メートル単位) の正確な値。[Float64](/ja/reference/data-types/float)

**例**

```sql title="Query" theme={null}
SELECT h3ExactEdgeLengthM(1310277011704381439) AS exactEdgeLengthM;;
```

```text title="Response" theme={null}
┌───exactEdgeLengthM─┐
│ 195449.63163407316 │
└────────────────────┘
```

<div id="h3exactedgelengthkm">
  ## h3ExactEdgeLengthKm
</div>

入力された h3 index が表す単方向エッジの厳密な長さを、キロメートル単位で返します。

**構文**

```sql theme={null}
h3ExactEdgeLengthKm(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)

**戻り値**

* キロメートル単位の辺の正確な長さ。[Float64](/ja/reference/data-types/float)

**例**

```sql title="Query" theme={null}
SELECT h3ExactEdgeLengthKm(1310277011704381439) AS exactEdgeLengthKm;;
```

```text title="Response" theme={null}
┌──exactEdgeLengthKm─┐
│ 195.44963163407317 │
└────────────────────┘
```

<div id="h3exactedgelengthrads">
  ## h3ExactEdgeLengthRads
</div>

入力された H3 インデックス が表す単方向エッジの正確な長さを、ラジアン単位で返します。

**構文**

```sql theme={null}
h3ExactEdgeLengthRads(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* ラジアン単位での正確な辺の長さ。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3ExactEdgeLengthRads(1310277011704381439) AS exactEdgeLengthRads;;
```

```text title="Response" theme={null}
┌──exactEdgeLengthRads─┐
│ 0.030677980118976447 │
└──────────────────────┘
```

<div id="h3numhexagons">
  ## h3NumHexagons
</div>

指定された分解能における一意の H3 インデックス数を返します。

**構文**

```sql theme={null}
h3NumHexagons(resolution)
```

**パラメータ**

* `resolution` — インデックスの解像度。範囲: `[0, 15]`。[UInt8](/ja/reference/data-types/int-uint)。

**戻り値**

* H3 索引の数。[Int64](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
SELECT h3NumHexagons(3) AS numHexagons;
```

```text title="Response" theme={null}
┌─numHexagons─┐
│       41162 │
└─────────────┘
```

<div id="h3pointdistm">
  ## h3PointDistM
</div>

GeoCoord 点 (緯度/経度) のペア間の「大円距離」または「ハバーサイン距離」をメートル単位で返します。

**構文**

```sql theme={null}
h3PointDistM(lat1, lon1, lat2, lon2)
```

**引数**

* `lat1`, `lon1` — 点1の緯度と経度 (度数) 。[Float64](/ja/reference/data-types/float)。
* `lat2`, `lon2` — 点2の緯度と経度 (度数) 。[Float64](/ja/reference/data-types/float)。

**戻り値**

* メートル単位のハバーサイン距離、または大円距離。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3PointDistM(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistM;
```

```text title="Response" theme={null}
┌──────h3PointDistM─┐
│ 2223901.039504589 │
└───────────────────┘
```

<div id="h3pointdistkm">
  ## h3PointDistKm
</div>

GeoCoord 点 (緯度/経度) のペア間の「大円距離」または「ハバーサイン距離」を、キロメートル単位で返します。

**構文**

```sql theme={null}
h3PointDistKm(lat1, lon1, lat2, lon2)
```

**引数**

* `lat1`, `lon1` — 点1の緯度と経度 (度) 。[Float64](/ja/reference/data-types/float)。
* `lat2`, `lon2` — 点2の緯度と経度 (度) 。[Float64](/ja/reference/data-types/float)。

**戻り値**

* ハバーサイン距離、または大円距離 (キロメートル) 。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3PointDistKm(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistKm;
```

```text title="Response" theme={null}
┌─────h3PointDistKm─┐
│ 2223.901039504589 │
└───────────────────┘
```

<div id="h3pointdistrads">
  ## h3PointDistRads
</div>

GeoCoord 点のペア (緯度/経度) 間の「大円距離」または「ハバーサイン距離」をラジアン単位で返します。

**構文**

```sql theme={null}
h3PointDistRads(lat1, lon1, lat2, lon2)
```

**引数**

* `lat1`, `lon1` — 点1の緯度と経度 (度単位) 。[Float64](/ja/reference/data-types/float)。
* `lat2`, `lon2` — 点2の緯度と経度 (度単位) 。[Float64](/ja/reference/data-types/float)。

**戻り値**

* ラジアン単位のハバーサイン距離または大円距離。[Float64](/ja/reference/data-types/float)。

**例**

```sql title="Query" theme={null}
SELECT h3PointDistRads(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistRads;
```

```text title="Response" theme={null}
┌────h3PointDistRads─┐
│ 0.3490658503988659 │
└────────────────────┘
```

<div id="h3getres0indexes">
  ## h3GetRes0Indexes
</div>

解像度0のすべてのH3インデックスを含む配列を返します。

**構文**

```sql theme={null}
h3GetRes0Indexes()
```

**戻り値**

* 解像度 0 のすべての H3 インデックス からなる Array。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
SELECT h3GetRes0Indexes AS indexes ;
```

```text title="Response" theme={null}
┌─indexes─────────────────────────────────────┐
│ [576495936675512319,576531121047601151,....]│
└─────────────────────────────────────────────┘
```

<div id="h3getpentagonindexes">
  ## h3GetPentagonIndexes
</div>

指定した解像度における、すべての五角形の H3 インデックスを返します。

**構文**

```sql theme={null}
h3GetPentagonIndexes(resolution)
```

**パラメーター**

* `resolution` — インデックスの解像度。範囲: `[0, 15]`。[UInt8](/ja/reference/data-types/int-uint)。

**戻り値**

* すべての五角形の H3 インデックス を格納した Array。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
SELECT h3GetPentagonIndexes(3) AS indexes;
```

```text title="Response" theme={null}
┌─indexes────────────────────────────────────────────────────────┐
│ [590112357393367039,590464201114255359,590816044835143679,...] │
└────────────────────────────────────────────────────────────────┘
```

<div id="h3line">
  ## h3Line
</div>

指定された2つのインデックス間を結ぶインデックスのラインを返します。

**構文**

```sql theme={null}
h3Line(start,end)
```

**パラメータ**

* `start` — 始点を表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。
* `end` — 終点を表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

指定された2つのインデックスを結ぶインデックス列を表す h3 インデックスの Array。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
 SELECT h3Line(590080540275638271,590103561300344831) AS indexes;
```

```text title="Response" theme={null}
┌─indexes────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [590080540275638271,590080471556161535,590080883873021951,590106516237844479,590104385934065663,590103630019821567,590103561300344831] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="h3distance">
  ## h3Distance
</div>

指定された2つのインデックス間の距離を、グリッドセル単位で返します。

**構文**

```sql theme={null}
h3Distance(start,end)
```

**パラメータ**

* `start` — 開始点を表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)
* `end` — 終了点を表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)

**戻り値**

* グリッドセルの数。[Int64](/ja/reference/data-types/int-uint)

距離の計算に失敗した場合は、負の数を返します。

**例**

```sql title="Query" theme={null}
 SELECT h3Distance(590080540275638271,590103561300344831) AS distance;
```

```text title="Response" theme={null}
┌─distance─┐
│        7 │
└──────────┘
```

<div id="h3hexring">
  ## h3HexRing
</div>

指定された始点 h3Index を中心とする距離 k の六角形リングの索引を返します。

五角形による歪みが発生しなかった場合は 0 を返します。

**構文**

```sql theme={null}
h3HexRing(index, k)
```

**パラメータ**

* `index` — 始点を表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。
* `k` — 距離。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* H3 インデックスのArray。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
 SELECT h3HexRing(590080540275638271, toUInt16(1)) AS hexRing;
```

```text title="Response" theme={null}
┌─hexRing─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [590080815153545215,590080471556161535,590080677714591743,590077585338138623,590077447899185151,590079509483487231] │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="h3getunidirectionaledge">
  ## h3GetUnidirectionalEdge
</div>

指定された始点と宛先に基づいて単方向エッジの H3 インデックスを返します。エラー時には 0 を返します。

**構文**

```sql theme={null}
h3GetUnidirectionalEdge(originIndex, destinationIndex)
```

**パラメータ**

* `originIndex` — 始点の六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。
* `destinationIndex` — 宛先の六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* 単方向エッジの六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
 SELECT h3GetUnidirectionalEdge(599686042433355775, 599686043507097599) AS edge;
```

```text title="Response" theme={null}
┌────────────────edge─┐
│ 1248204388774707199 │
└─────────────────────┘
```

<div id="h3unidirectionaledgeisvalid">
  ## h3UnidirectionalEdgeIsValid
</div>

指定された H3Index が有効な単方向エッジのインデックスかどうかを判定します。単方向エッジであれば 1、そうでなければ 0 を返します。

**構文**

```sql theme={null}
h3UnidirectionalEdgeisValid(index)
```

**パラメータ**

* `index` — 六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* 1 — H3インデックスが有効な単方向エッジです。[UInt8](/ja/reference/data-types/int-uint)。
* 0 — H3インデックスは有効な単方向エッジではありません。[UInt8](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
 SELECT h3UnidirectionalEdgeIsValid(1248204388774707199) AS validOrNot;
```

```text title="Response" theme={null}
┌─validOrNot─┐
│          1 │
└────────────┘
```

<div id="h3getoriginindexfromunidirectionaledge">
  ## h3GetOriginIndexFromUnidirectionalEdge
</div>

単方向エッジ H3Index から始点の六角形インデックスを返します。

**構文**

```sql theme={null}
h3GetOriginIndexFromUnidirectionalEdge(edge)
```

**パラメータ**

* `edge` — 一方向エッジを表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* 始点の六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
 SELECT h3GetOriginIndexFromUnidirectionalEdge(1248204388774707197) AS origin;
```

```text title="Response" theme={null}
┌─────────────origin─┐
│ 599686042433355773 │
└────────────────────┘
```

<div id="h3getdestinationindexfromunidirectionaledge">
  ## h3GetDestinationIndexFromUnidirectionalEdge
</div>

単方向エッジの H3Index から、宛先の六角形インデックスを返します。

**構文**

```sql theme={null}
h3GetDestinationIndexFromUnidirectionalEdge(edge)
```

**パラメータ**

* `edge` — 単方向エッジを表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* 宛先の六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**例**

```sql title="Query" theme={null}
 SELECT h3GetDestinationIndexFromUnidirectionalEdge(1248204388774707197) AS destination;
```

```text title="Response" theme={null}
┌────────destination─┐
│ 599686043507097597 │
└────────────────────┘
```

<div id="h3getindexesfromunidirectionaledge">
  ## h3GetIndexesFromUnidirectionalEdge
</div>

指定された単方向エッジ H3Index から、始点と宛先の六角形の索引を返します。

**構文**

```sql theme={null}
h3GetIndexesFromUnidirectionalEdge(edge)
```

**パラメータ**

* `edge` — 単方向エッジを表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

2つの値 `tuple(origin,destination)` で構成されるタプル:

* `origin` — 始点の六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。
* `destination` — 宛先の六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

与えられた入力が無効な場合は `(0,0)` を返します。

**例**

```sql title="Query" theme={null}
 SELECT h3GetIndexesFromUnidirectionalEdge(1248204388774707199) AS indexes;
```

```text title="Response" theme={null}
┌─indexes─────────────────────────────────┐
│ (599686042433355775,599686043507097599) │
└─────────────────────────────────────────┘
```

<div id="h3getunidirectionaledgesfromhexagon">
  ## h3GetUnidirectionalEdgesFromHexagon
</div>

指定された H3Index から伸びるすべての単方向エッジを返します。

**構文**

```sql theme={null}
h3GetUnidirectionalEdgesFromHexagon(index)
```

**パラメータ**

* `index` — 一方向エッジを表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)

**戻り値**

各一方向エッジを表す H3 index の Array。[Array](/ja/reference/data-types/array)([UInt64](/ja/reference/data-types/int-uint))。

**例**

```sql title="Query" theme={null}
 SELECT h3GetUnidirectionalEdgesFromHexagon(1248204388774707199) AS edges;
```

```text title="Response" theme={null}
┌─edges─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [1248204388774707199,1320261982812635135,1392319576850563071,1464377170888491007,1536434764926418943,1608492358964346879] │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="h3getunidirectionaledgeboundary">
  ## h3GetUnidirectionalEdgeBoundary
</div>

単方向エッジを構成する座標を返します。

**構文**

```sql theme={null}
h3GetUnidirectionalEdgeBoundary(index)
```

**パラメータ**

* `index` — 一方向エッジを表す六角形インデックス番号。[UInt64](/ja/reference/data-types/int-uint)。

**戻り値**

* '(lon, lat)' のペアからなる Array。[Array](/ja/reference/data-types/array)([Float64](/ja/reference/data-types/float), [Float64](/ja/reference/data-types/float))。

**例**

```sql title="Query" theme={null}
 SELECT h3GetUnidirectionalEdgeBoundary(1248204388774707199) AS boundary;
```

```text title="Response" theme={null}
┌─boundary────────────────────────────────────────────────────────────────────────┐
│ [(37.42012867767779,-122.03773496427027),(37.33755608435299,-122.090428929044)] │
└─────────────────────────────────────────────────────────────────────────────────┘
```
