Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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

H3 Index

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

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

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

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

H3 システムの完全な説明は、Uber Engineering のサイトで参照できます。

h3IsValid

数値が有効な H3 インデックスかどうかを検証します。

構文

h3IsValid(h3index)

パラメータ

  • h3index — 六角形インデックス番号。UInt64

戻り値

  • 1 — この数値は有効な H3 インデックスです。UInt8
  • 0 — この数値は有効な H3 インデックスではありません。UInt8

Querysql
SELECT h3IsValid(630814730351855103) AS h3IsValid;
Responsetext
┌─h3IsValid─┐
│         1 │
└───────────┘

h3GetResolution

指定された H3 H3 インデックスの解像度を返します。

構文

h3GetResolution(h3index)

パラメータ

  • h3index — 六角形インデックス番号。UInt64

戻り値

  • インデックスの解像度。範囲: [0, 15]UInt8
  • インデックスが無効な場合、この関数はランダムな値を返します。インデックスを確認するには h3IsValid を使用してください。UInt8

Querysql
SELECT h3GetResolution(639821929606596015) AS resolution;
Responsetext
┌─resolution─┐
│         14 │
└────────────┘

h3EdgeAngle

H3 の六角形セルの辺の平均長をグラード単位で計算します。

構文

h3EdgeAngle(resolution)

パラメータ

  • resolution — インデックスの解像度。UInt8。範囲: [0, 15]

戻り値

  • H3 六角形の辺の平均長 (グレード) 。Float64

Querysql
SELECT h3EdgeAngle(10) AS edgeAngle;
Responsetext
┌───────h3EdgeAngle(10)─┐
│ 0.0005927224846720883 │
└───────────────────────┘

h3EdgeLengthM

H3 の六角形の辺の平均の長さをメートル単位で計算します。

構文

h3EdgeLengthM(resolution)

パラメータ

  • resolution — インデックスの解像度。UInt8。範囲: [0, 15]

戻り値

  • H3 の六角形の平均辺長 (メートル単位) 。Float64

Querysql
SELECT h3EdgeLengthM(15) AS edgeLengthM;
Responsetext
┌─edgeLengthM─┐
│ 0.509713273 │
└─────────────┘

h3EdgeLengthKm

H3 の六角形セルの辺の平均の長さをキロメートル単位で計算します。

構文

h3EdgeLengthKm(resolution)

パラメータ

  • resolution — インデックスの解像度。UInt8。範囲: [0, 15]

戻り値

  • H3 の六角形の辺の平均の長さ (キロメートル) 。Float64

Querysql
SELECT h3EdgeLengthKm(15) AS edgeLengthKm;
Responsetext
┌─edgeLengthKm─┐
│  0.000509713 │
└──────────────┘

geoToH3

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

構文

geoToH3(lat, lon, resolution)

Arguments

  • 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' を使用して復元できます。

Example

Querysql
SELECT geoToH3(55.71290588, 37.79506683, 15) AS h3Index;
Responsetext
┌────────────h3Index─┐
│ 644325524701193974 │
└────────────────────┘

h3ToGeo

指定されたH3H3 インデックスに対応する重心の緯度と経度を返します。

構文

h3ToGeo(h3Index)

引数

  • h3Index — H3 インデックス。 UInt64

戻り値

  • 2 つの値で構成されるタプル: tuple(lat,lon)lat — 緯度。 Float64lon — 経度。 Float64

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

Querysql
SELECT h3ToGeo(644325524701193974) AS coordinates;
Responsetext
┌─coordinates───────────────────────────┐
│ (55.71290243145668,37.79506616830252) │
└───────────────────────────────────────┘

h3ToGeoBoundary

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

構文

h3ToGeoBoundary(h3Index)

引数

  • h3Index — H3 インデックス。UInt64

戻り値

Querysql
SELECT h3ToGeoBoundary(644325524701193974) AS coordinates;
Responsetext
┌─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)] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3kRing

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

構文

h3kRing(h3index, k)

引数

  • h3index — 六角形インデックス番号。UInt64
  • k — 半径。整数

戻り値

Querysql
SELECT arrayJoin(h3kRing(644325529233966508, 1)) AS h3index;
Responsetext
┌────────────h3index─┐
│ 644325529233966508 │
│ 644325529233966497 │
│ 644325529233966510 │
│ 644325529233966504 │
│ 644325529233966509 │
│ 644325529233966355 │
│ 644325529233966354 │
└────────────────────┘

h3PolygonToCells

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

構文

h3PolygonToCells(geometry, resolution)

引数

  • geometry には、以下のいずれかの Geoデータ型 またはその基になるプリミティブ型を指定できます。
  • resolution — インデックスの解像度。範囲: [0, 15]UInt8

戻り値

  • 含まれる H3 インデックス の Array。Array(UInt64)。

Querysql
SELECT h3PolygonToCells([(-122.4089866999972145,37.813318999983238),(-122.3544736999993603,37.7198061999978478),(-122.4798767000009008,37.8151571999998453)], 7) AS h3index;
Responsetext
┌────────────h3index─┐
│ 608692970769612799 │
│ 608692971927240703 │
│ 608692970585063423 │
│ 608692970819944447 │
│ 608692970719281151 │
│ 608692970752835583 │
│ 608692972027903999 │
└────────────────────┘

h3PolygonToCellsWithContainment

指定したジオメトリ (Ring または (multi-)Polygon) を、H3 の実験的な包含モードを使用して、指定した解像度の六角形セルでカバーして返します。

この関数では、flags を H3 の包含モードにマッピングします。

  • 0CONTAINMENT_CENTER
  • 1CONTAINMENT_FULL
  • 2CONTAINMENT_OVERLAPPING
  • 3CONTAINMENT_OVERLAPPING_BBOX

構文

h3PolygonToCellsWithContainment(geometry, resolution, flags)

引数

  • geometry には、次のいずれかの Geoデータ型 またはそれらの基になるプリミティブ型を指定できます。
  • resolution — インデックスの解像度。範囲: [0, 15]UInt8
  • flags — 包含モード。範囲: [0, 3]0123 などの整数リテラル、または UInt32 の値 (たとえば toUInt32(2)) を使用します。値は UInt32 として H3 API に渡されます。その他のネイティブ整数型は、厳密なキャストによって変換されます。

戻り値

  • 選択した包含モードに応じた H3 インデックス の Array。Array(UInt64)。

Querysql
SELECT
    h3PolygonToCellsWithContainment([(-122.4089866999972145, 37.813318999983238), (-122.3544736999993603, 37.7198061999978478), (-122.4798767000009008, 37.8151571999998453)], 7, 0) AS center_cells,
    h3PolygonToCellsWithContainment([(-122.4089866999972145, 37.813318999983238), (-122.3544736999993603, 37.7198061999978478), (-122.4798767000009008, 37.8151571999998453)], 7, 2) AS overlap_cells;
Responsetext
   ┌─center_cells───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─overlap_cells──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
1. │ [608692970585063423,608692970719281151,608692970752835583,608692970769612799,608692970819944447,608692971927240703,608692972027903999] │ [608692970249519103,608692970266296319,608692970585063423,608692970601840639,608692970635395071,608692970685726719,608692970719281151,608692970736058367,608692970752835583,608692970769612799,608692970786390015,608692970819944447,608692971927240703,608692971994349567,608692972027903999] │
   └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3GetBaseCell

H3 インデックスのベースセル番号を返します。

構文

h3GetBaseCell(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • 六角形のベースセルの番号。UInt8

Querysql
SELECT h3GetBaseCell(612916788725809151) AS basecell;
Responsetext
┌─basecell─┐
│       12 │
└──────────┘

h3HexAreaM2

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

構文

h3HexAreaM2(resolution)

パラメーター

  • resolution — インデックスの解像度。範囲は [0, 15] です。UInt8

戻り値

  • 平方メートル単位の面積。Float64

Querysql
SELECT h3HexAreaM2(13) AS area;
Responsetext
┌─area─┐
│ 43.9 │
└──────┘

h3HexAreaKm2

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

構文

h3HexAreaKm2(resolution)

パラメータ

  • resolution — インデックスの解像度。範囲: [0, 15]UInt8

戻り値

  • 面積 (平方キロメートル) 。 Float64

Querysql
SELECT h3HexAreaKm2(13) AS area;
Responsetext
┌──────area─┐
│ 0.0000439 │
└───────────┘

h3IndexesAreNeighbors

指定された H3 索引同士が隣接しているかどうかを返します。

構文

h3IndexesAreNeighbors(index1, index2)

引数

  • index1 — 六角形インデックス番号。UInt64
  • index2 — 六角形インデックス番号。UInt64

戻り値

  • 1 — インデックス同士は隣接しています。UInt8
  • 0 — インデックス同士は隣接していません。UInt8

Querysql
SELECT h3IndexesAreNeighbors(617420388351344639, 617420388352655359) AS n;
Responsetext
┌─n─┐
│ 1 │
└───┘

h3ToChildren

指定された H3 索引の子索引の配列を返します。

構文

h3ToChildren(index, resolution)

引数

  • index — 六角形インデックス番号。 UInt64
  • resolution — インデックスの解像度。範囲: [0, 15]UInt8

戻り値

  • 子 H3 インデックスの Array。 Array(UInt64)。

Querysql
SELECT h3ToChildren(599405990164561919, 6) AS children;
Responsetext
┌─children───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [603909588852408319,603909588986626047,603909589120843775,603909589255061503,603909589389279231,603909589523496959,603909589657714687] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3ToParent

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

構文

h3ToParent(index, resolution)

引数

  • index — 六角形インデックス番号。UInt64
  • resolution — インデックスの解像度。範囲: [0, 15]UInt8

戻り値

Querysql
SELECT h3ToParent(599405990164561919, 3) AS parent;
Responsetext
┌─────────────parent─┐
│ 590398848891879423 │
└────────────────────┘

h3ToString

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

h3ToString(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • H3インデックスの文字列表現。String

Querysql
SELECT h3ToString(617420388352917503) AS h3_string;
Responsetext
┌─h3_string───────┐
│ 89184926cdbffff │
└─────────────────┘

stringToH3

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

構文

stringToH3(index_str)

パラメーター

  • index_str — H3インデックスの文字列表現。String

戻り値

  • 六角形インデックス番号。エラー時は 0 を返します。UInt64

Querysql
SELECT stringToH3('89184926cc3ffff') AS index;
Responsetext
┌──────────────index─┐
│ 617420388351344639 │
└────────────────────┘

h3GetResolution

H3 インデックスの解像度を返します。

構文

h3GetResolution(index)

パラメータ

  • index — 六角形インデックス番号。UInt64.

戻り値

  • インデックスの解像度。範囲: [0, 15]UInt8.

Querysql
SELECT h3GetResolution(617420388352917503) AS res;
Responsetext
┌─res─┐
│   9 │
└─────┘

h3IsResClassIII

H3 インデックスが Class III 向きの解像度かどうかを返します。

構文

h3IsResClassIII(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • 1 — インデックスの解像度が Class III オリエンテーションである。UInt8
  • 0 — インデックスの解像度が Class III オリエンテーションではない。UInt8

Querysql
SELECT h3IsResClassIII(617420388352917503) AS res;
Responsetext
┌─res─┐
│   1 │
└─────┘

h3IsPentagon

この H3 インデックスが五角形セルを表しているかどうかを返します。

構文

h3IsPentagon(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • 1 — インデックスが五角形セルを表す場合。UInt8
  • 0 — インデックスが五角形セルを表さない場合。UInt8

Querysql
SELECT h3IsPentagon(644721767722457330) AS pentagon;
Responsetext
┌─pentagon─┐
│        0 │
└──────────┘

h3GetFaces

指定された H3 インデックスが交差する正二十面体の面を返します。

構文

h3GetFaces(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • 指定された H3インデックスと交差する正二十面体の面を含む Array。Array(UInt64)。

Querysql
SELECT h3GetFaces(599686042433355775) AS faces;
Responsetext
┌─faces─┐
│ [7]   │
└───────┘

h3CellAreaM2

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

構文

h3CellAreaM2(index)

パラメータ

  • index — 六角形インデックス番号。 UInt64.

戻り値

  • セルの面積 (平方メートル単位) 。 Float64.

Querysql
SELECT h3CellAreaM2(579205133326352383) AS area;
Responsetext
┌───────────────area─┐
│ 4106166334463.9233 │
└────────────────────┘

h3CellAreaRads2

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

構文

h3CellAreaRads2(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • 平方ラジアンで表したセルの面積。Float64

Querysql
SELECT h3CellAreaRads2(579205133326352383) AS area;
Responsetext
┌────────────────area─┐
│ 0.10116268528089567 │
└─────────────────────┘

h3ToCenterChild

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

構文

h3ToCenterChild(index, resolution)

パラメータ

  • index — 六角形インデックス番号。UInt64
  • resolution — インデックスの解像度。範囲: [0, 15]UInt8

戻り値

  • 指定した解像度における、指定された H3 に含まれる中心の子 H3 のインデックス。UInt64

Querysql
SELECT h3ToCenterChild(577023702256844799,1) AS centerToChild;
Responsetext
┌──────centerToChild─┐
│ 581496515558637567 │
└────────────────────┘

h3ExactEdgeLengthM

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

構文

h3ExactEdgeLengthM(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • 正確な辺の長さ (メートル単位) の値。Float64

Querysql
SELECT round(h3ExactEdgeLengthM(1310277011704381439), 6) AS exactEdgeLengthM;
Responsetext
┌─exactEdgeLengthM─┐
│    195449.631634 │
└──────────────────┘

h3ExactEdgeLengthKm

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

構文

h3ExactEdgeLengthKm(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • キロメートル単位の正確な辺の長さ。Float64

Querysql
SELECT round(h3ExactEdgeLengthKm(1310277011704381439), 8) AS exactEdgeLengthKm;
Responsetext
┌─exactEdgeLengthKm─┐
│      195.44963163 │
└───────────────────┘

h3ExactEdgeLengthRads

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

構文

h3ExactEdgeLengthRads(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • ラジアン単位での正確な辺の長さ。Float64

Querysql
SELECT round(h3ExactEdgeLengthRads(1310277011704381439), 12) AS exactEdgeLengthRads;
Responsetext
┌─exactEdgeLengthRads─┐
│      0.030677980119 │
└─────────────────────┘

h3NumHexagons

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

構文

h3NumHexagons(resolution)

パラメータ

  • resolution — インデックスの解像度。範囲: [0, 15]UInt8

戻り値

  • H3 索引の数。Int64

Querysql
SELECT h3NumHexagons(3) AS numHexagons;
Responsetext
┌─numHexagons─┐
│       41162 │
└─────────────┘

h3PointDistM

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

構文

h3PointDistM(lat1, lon1, lat2, lon2)

引数

  • lat1, lon1 — 点1の緯度と経度 (度数) 。Float64
  • lat2, lon2 — 点2の緯度と経度 (度数) 。Float64

戻り値

  • メートル単位のハバーサイン距離、または大円距離。Float64

Querysql
SELECT h3PointDistM(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistM;
Responsetext
┌───────h3PointDistM─┐
│ 2223901.0395045886 │
└────────────────────┘

h3PointDistKm

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

構文

h3PointDistKm(lat1, lon1, lat2, lon2)

引数

  • lat1, lon1 — 点1の緯度と経度 (度) 。Float64
  • lat2, lon2 — 点2の緯度と経度 (度) 。Float64

戻り値

  • ハバーサイン距離、または大円距離 (キロメートル) 。Float64

Querysql
SELECT h3PointDistKm(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistKm;
Responsetext
┌──────h3PointDistKm─┐
│ 2223.9010395045884 │
└────────────────────┘

h3PointDistRads

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

構文

h3PointDistRads(lat1, lon1, lat2, lon2)

引数

  • lat1, lon1 — 点1の緯度と経度 (度単位) 。Float64
  • lat2, lon2 — 点2の緯度と経度 (度単位) 。Float64

戻り値

  • ラジアン単位のハバーサイン距離または大円距離。Float64

Querysql
SELECT h3PointDistRads(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistRads;
Responsetext
┌────h3PointDistRads─┐
│ 0.3490658503988659 │
└────────────────────┘

h3GetRes0Indexes

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

構文

h3GetRes0Indexes()

戻り値

  • 解像度 0 のすべての H3 インデックス からなる Array。Array(UInt64)。

Querysql
SELECT h3GetRes0Indexes AS indexes ;
Responsetext
┌─indexes─────────────────────────────────────┐
│ [576495936675512319,576531121047601151,....]│
└─────────────────────────────────────────────┘

h3GetPentagonIndexes

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

構文

h3GetPentagonIndexes(resolution)

パラメーター

  • resolution — インデックスの解像度。範囲: [0, 15]UInt8

戻り値

  • すべての五角形の H3 インデックス を格納した Array。Array(UInt64)。

Querysql
SELECT h3GetPentagonIndexes(3) AS indexes;
Responsetext
┌─indexes────────────────────────────────────────────────────────┐
│ [590112357393367039,590464201114255359,590816044835143679,...] │
└────────────────────────────────────────────────────────────────┘

h3Line

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

構文

h3Line(start,end)

パラメータ

  • start — 始点を表す六角形インデックス番号。UInt64
  • end — 終点を表す六角形インデックス番号。UInt64

戻り値

指定された2つのインデックスを結ぶインデックス列を表す h3 インデックスの Array。Array(UInt64)。

Querysql
 SELECT h3Line(590080540275638271,590103561300344831) AS indexes;
Responsetext
┌─indexes────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [590080540275638271,590080471556161535,590080883873021951,590106516237844479,590104385934065663,590103630019821567,590103561300344831] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3Distance

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

構文

h3Distance(start,end)

パラメータ

  • start — 始点を表す六角形インデックス番号。UInt64
  • end — 終点を表す六角形インデックス番号。UInt64

戻り値

  • グリッドセルの数。Int64

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

Querysql
 SELECT h3Distance(590080540275638271,590103561300344831) AS distance;
Responsetext
┌─distance─┐
│        6 │
└──────────┘

h3HexRing

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

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

構文

h3HexRing(index, k)

パラメータ

  • index — 始点を表す六角形インデックス番号。UInt64
  • k — 距離。UInt64

戻り値

Querysql
 SELECT h3HexRing(590080540275638271, toUInt16(1)) AS hexRing;
Responsetext
┌─hexRing─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [590080815153545215,590080471556161535,590080677714591743,590077585338138623,590077447899185151,590079509483487231] │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3GetUnidirectionalEdge

隣接する 2 つの H3 セルインデックス (始点と宛先) の単方向エッジ H3 インデックスを返します。いずれかの入力が有効な H3 セルでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。隣接していない有効なセル (同じセルを 2 回指定した場合を含む) の場合は、0 を返します。

構文

h3GetUnidirectionalEdge(originIndex, destinationIndex)

パラメータ

  • originIndex — 始点の六角形インデックス番号。UInt64
  • destinationIndex — 宛先の六角形インデックス番号。UInt64

戻り値

  • 単方向エッジの六角形インデックス番号。UInt64

Querysql
 SELECT h3GetUnidirectionalEdge(599686042433355775, 599686043507097599) AS edge;
Responsetext
┌────────────────edge─┐
│ 1248204388774707199 │
└─────────────────────┘

h3UnidirectionalEdgeIsValid

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

構文

h3UnidirectionalEdgeIsValid(index)

パラメータ

  • index — 六角形インデックス番号。UInt64

戻り値

  • 1 — H3インデックスが有効な単方向エッジです。UInt8
  • 0 — H3インデックスは有効な単方向エッジではありません。UInt8

Querysql
 SELECT h3UnidirectionalEdgeIsValid(1248204388774707199) AS validOrNot;
Responsetext
┌─validOrNot─┐
│          1 │
└────────────┘

h3GetOriginIndexFromUnidirectionalEdge

単方向エッジ H3Index から始点の六角形インデックスを返します。入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。この設定が有効な場合にのみ 0 を返します。

構文

h3GetOriginIndexFromUnidirectionalEdge(edge)

パラメータ

  • edge — 単方向エッジを表す六角形インデックス番号。UInt64

戻り値

  • 始点の六角形インデックス番号。UInt64
  • デフォルトでは、無効な有向エッジに対して INCORRECT_DATA をスローします。functions_h3_default_if_invalid = 1 の場合は 0 を返します。

Querysql
 SELECT h3GetOriginIndexFromUnidirectionalEdge(1248204388774707199) AS origin;
Responsetext
┌─────────────origin─┐
│ 599686042433355775 │
└────────────────────┘

h3GetDestinationIndexFromUnidirectionalEdge

単方向エッジの H3Index から、宛先の六角形インデックスを返します。入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。この設定が有効な場合にのみ 0 を返します。

構文

h3GetDestinationIndexFromUnidirectionalEdge(edge)

パラメータ

  • edge — 単方向エッジを表す六角形インデックス番号。UInt64

戻り値

  • 宛先の六角形インデックス番号。UInt64
  • デフォルトでは、無効な有向エッジに対して INCORRECT_DATA をスローします。functions_h3_default_if_invalid = 1 の場合は 0 を返します。

Querysql
 SELECT h3GetDestinationIndexFromUnidirectionalEdge(1248204388774707199) AS destination;
Responsetext
┌────────destination─┐
│ 599686043507097599 │
└────────────────────┘

h3GetIndexesFromUnidirectionalEdge

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

構文

h3GetIndexesFromUnidirectionalEdge(edge)

パラメータ

  • edge — 単方向エッジを表す六角形インデックス番号。UInt64

戻り値

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

  • origin — 始点の六角形インデックス番号。UInt64
  • destination — 宛先の六角形インデックス番号。UInt64

指定された入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。その設定が有効な場合にのみ (0,0) を返します。

Querysql
 SELECT h3GetIndexesFromUnidirectionalEdge(1248204388774707199) AS indexes;
Responsetext
┌─indexes─────────────────────────────────┐
│ (599686042433355775,599686043507097599) │
└─────────────────────────────────────────┘

h3GetUnidirectionalEdgesFromHexagon

指定された H3Index から伸びるすべての単方向エッジを返します。入力が H3 セルでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御) 。この設定が有効な場合にのみ、空の Array を返します。

構文

h3GetUnidirectionalEdgesFromHexagon(index)

パラメータ

  • index — cell を表す六角形インデックス番号。UInt64

戻り値

  • 各一方向エッジを表す H3 index の Array。Array(UInt64)。
  • デフォルトでは無効な cell に対して INCORRECT_DATA をスローします。functions_h3_default_if_invalid = 1 の場合は [] を返します。

Querysql
 SELECT h3GetUnidirectionalEdgesFromHexagon(599686042433355775) AS edges;
Responsetext
┌─edges─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [1248204388774707199,1320261982812635135,1392319576850563071,1464377170888491007,1536434764926418943,1608492358964346879] │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3GetUnidirectionalEdgeBoundary

単方向エッジを構成する座標を返します。入力が有効な有向エッジでない場合は例外をスローします (functions_h3_default_if_invalid 設定で制御されます) 。空の Array を返すのは、その設定が有効な場合のみです。

構文

h3GetUnidirectionalEdgeBoundary(index)

パラメータ

  • index — 単方向エッジを表す六角形インデックス番号。UInt64

戻り値

  • '(lat, lon)' のペアからなる Array。Array(Float64, Float64)。
  • デフォルトでは無効な有向エッジに対して INCORRECT_DATA をスローします。functions_h3_default_if_invalid = 1 の場合は [] を返します。

Querysql
 SELECT h3GetUnidirectionalEdgeBoundary(1248204388774707199) AS boundary;
Responsetext
┌─boundary────────────────────────────────────────────────────────────────────────┐
│ [(37.42012867767779,-122.03773496427027),(37.33755608435299,-122.090428929044)] │
└─────────────────────────────────────────────────────────────────────────────────┘
Navigation