すべてのプロダクト
Search
ドキュメントセンター

:H3 関数

最終更新日:Aug 26, 2026

Lindorm GanosBase 時空間サービスは、H3 グリッドにおける効率的な空間分析とクエリのための H3 関数を提供します。これらの関数を使用して H3 インデックスを処理することで、インデックスタイプの変換、セル間の関係のクエリ、セル解像度のクエリ、およびセル間の距離の計算を行うことができます。このトピックでは、Lindorm GanosBase 時空間サービスでサポートされているすべての H3 関数について説明します。

エンジンとバージョン

  • H3 関数は、ワイドテーブルエンジン でのみ使用できます。

  • ワイドテーブルエンジンは、バージョン 2.6.5 以降である必要があります。 エンジンバージョンの確認方法またはアップグレード方法の詳細については、「ワイドテーブルエンジンのバージョン」および「マイナーバージョンのアップデート」をご参照ください。

    重要

    ワイドテーブルエンジンがバージョン 2.6.5 より前で、アップグレードできない場合は、DingTalk (ID: s0s3eg3) で Lindorm テクニカルサポートにお問い合わせのうえ、アップグレードをご依頼ください。

関数リスト

次の表は、Lindorm GanosBase でサポートされている H3 関数の一覧です。

関数カテゴリ

関数

説明

インポートと変換

H3

経度と緯度のペアまたは点座標を、指定された解像度の H3 グリッドエンコーディングに変換します。

H3_H3ToString

LONG 型の H3 グリッドエンコーディングを、対応する STRING 型に変換します。

H3_StringToH3

STRING 型の H3 グリッドエンコーディングを、対応する LONG 型に変換します。

H3_PolygonToCells

指定された解像度で、ポリゴンオブジェクトの H3 グリッドエンコーディングの配列を出力します。

エクスポート

H3_CellToBoundary

指定された H3 グリッドのポリゴン境界を出力します。

グリッド検証

H3_IsValidCell

入力された H3 グリッドエンコーディングが有効かどうかを検証します。

H3_GetResolution

入力された H3 グリッドエンコーディングの解像度を返します。

H3_AreNeighborCells

2 つの H3 グリッドが空間的に隣接しているかどうかを検証します。隣接している場合は true を返し、それ以外の場合は false を返します。

H3_Contains

H3Cells 配列 (H3 グリッドエンコーディングの配列) が、指定された H3 グリッドを含むかどうかを検証します。

グリッド操作

H3_CellToParent

H3 グリッドエンコーディングと指定された解像度を入力として受け取り、指定された解像度の親グリッドのエンコーディングを返します。

H3_CellToChildren

指定された解像度における、H3 グリッドの子グリッドのエンコーディングを返します。

H3 グリッドクエリ

H3_GridPathCells

2 つの H3 グリッド間のパスを取得します。

H3_GridDisk

グリッド距離 k を入力として受け取り、中心グリッドから距離 k 以内にあるすべての H3 グリッドエンコーディングの配列を返します。

距離計算

H3_Distance

2D 平面上で、指定された 2 つの H3 グリッドのセントロイド間のユークリッド距離を返します。

H3_DistanceSphere

WGS84 座標系で、指定された 2 つの H3 グリッドのセントロイド間の球面距離を返します。

インポートと変換

H3

経度と緯度のペアまたはポイントを、指定された解像度の H3 グリッドエンコーディングに変換します。

構文

Long H3(Point p)
Long H3(Double lng, Double lat)
Long H3(Point p, Int resolution)
Long H3(Double lng, Double lat, Int resolution)

パラメーター

パラメーター

説明

p

ポイント。 データ型は POINT です。

lng

経度。 データ型は DOUBLE です。

lat

緯度。 データ型は DOUBLE です。

resolution

解像度。 データ型は INT です。 値の範囲は 0~15 です。 デフォルト値は 15 です。

例

SELECT H3(128.2, 20.5) AS H3Cell;
SELECT H3(128.2, 20.5, 15) AS H3Cell;
SELECT H3(ST_MakePoInt(128.2, 20.5)) AS H3Cell;
SELECT H3(ST_MakePoInt(128.2, 20.5),15) AS H3Cell;

上記のステートメントは、同じ結果を返します:

+--------------------+
|       H3Cell       |
+--------------------+
| 645317832955184368 |
+--------------------+

H3_H3ToString

H3 グリッドエンコーディングを LONG 型から STRING 型に変換します。 入力が NULL または無効な H3 グリッドエンコーディングの場合、この関数は空文字列を返します。

構文

String H3_H3ToString(Long H3Cell)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディング。 データ型は LONG です。

例

  • 例 1:H3 グリッドエンコーディングを LONG 型から STRING 型に変換します。

    SELECT H3_H3ToString(599686042433355775) AS H3Address;

    結果:

    +-----------------+
    |    H3Address    |
    +-----------------+
    | 85283473fffffff |
    +-----------------+
  • 例 2:入力が有効かどうかを検証します。 入力が NULL または無効なグリッドエンコーディングの場合、空文字列が返されます。

    -- 無効なグリッドコードを入力
    SELECT H3_H3ToString(0) AS H3Address;
    
    -- 入力がNULLの場合
    SELECT H3_H3ToString(NULL) AS H3Address;

    結果:

    +-----------+
    | H3Address |
    +-----------+
    |           |
    +-----------+

H3_StringToH3

H3 グリッドエンコーディングを STRING 型から LONG 型に変換します。 入力が空文字列または無効な H3 グリッド文字列の場合、この関数は -1 を返します。

構文

Long H3_StringToH3(string H3Cell)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディング。 データ型は STRING です。

例

  • 例 1:STRING 型の H3 グリッドエンコーディングを入力し、LONG 型に変換します。

    SELECT H3_StringToH3('85283473fffffff') AS H3Cell;

    結果:

    +--------------------+
    |       H3Cell       |
    +--------------------+
    | 599686042433355775 |
    +--------------------+
  • 例 2:入力が有効かどうかを検証します。 入力が空または無効な H3 グリッド文字列の場合、-1 が返されます。

    -- 無効な H3 グリッド文字列を入力
    SELECT H3_StringToH3('abc') AS H3Cell;
    
    -- 空文字列を入力
    SELECT H3_StringToH3('') AS H3Cell;

    結果:

    +--------+
    | H3Cell |
    +--------+
    | -1     |
    +--------+

H3_PolygonToCells

指定された解像度でポリゴンの H3 インデックス配列を出力します。

構文

Set<Long> H3_PolygonToCells(Polygon poly, Int resolution)

パラメーター

パラメーター

説明

poly

ポリゴンオブジェクト。 データ型は POLYGON です。

resolution

解像度。 データ型は INT です。 値の範囲は 0~15 です。

例

有効なポリゴンを入力し、H3 インデックスの解像度を 9 に指定すると、ポリゴンを表す H3 インデックス配列が返されます。

SELECT H3_PolygonToCells(ST_GeomFromText('POLYGON((-122.481889 37.826683,-122.479487 37.808548,-122.474150 37.808904,-122.476510 37.826935,-122.481889 37.826683))'), 9) AS polyCells;

結果:

+--------------------------------+
|           polyCells            |
+--------------------------------+
| [617700171225497599,           |
| 617700171167825919,            |
| 617700171168874495,            |
| 617700171167563775,            |
| 617700171168612351,            |
| 617700171168350207,            |
| 617700171177525247,            |
| 617700171188011007,            |
| 617700171176476671]            |
+--------------------------------+

エクスポート

H3_CellToBoundary

指定された H3 グリッドのポリゴン境界を出力します。入力が空、NULL、または無効な H3 グリッドエンコーディングの場合、この関数は空のセットを返します。

構文

Set<Point> H3_CellToBoundary(Long H3Cell)
Set<Point> H3_CellToBoundary(string H3Cell)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディング。データ型は LONG または文字列です。

例

  • 例 1: 文字列型の H3 グリッドエンコーディングを入力して、対応する H3 グリッドのポリゴン境界を出力します。

    SELECT H3_CellToBoundary('85283473fffffff') AS boundary;

    返される結果:

    +--------------------------------+
    |            boundary            |
    +--------------------------------+
    | [Point (-121.92354999630157    |
    | 37.42834118609436), Point      |
    | (-122.02910130919003           |
    | 37.26319797461824), Point      |
    | (-121.91508032705622           |
    | 37.27135586673191),            |
    | Point (-122.090428929044       |
    | 37.33755608435299), Point      |
    | (-121.86222328902491           |
    | 37.353926450852256),           |
    | Point (-122.03773496427027     |
    | 37.42012867767779)]            |
    +--------------------------------+
  • 例 2: LONG 型の H3 グリッドエンコーディングを入力して、対応する H3 グリッドのポリゴン境界を出力します。

    SELECT H3_CellToBoundary(599686042433355775) AS boundary;

    返される結果:

    +--------------------------------+
    |            boundary            |
    +--------------------------------+
    | [Point (-121.92354999630157    |
    | 37.42834118609436), Point      |
    | (-122.02910130919003           |
    | 37.26319797461824), Point      |
    | (-121.91508032705622           |
    | 37.27135586673191),            |
    | Point (-122.090428929044       |
    | 37.33755608435299), Point      |
    | (-121.86222328902491           |
    | 37.353926450852256),           |
    | Point (-122.03773496427027     |
    | 37.42012867767779)]            |
    +--------------------------------+
  • 例 3: 空の値、NULL、または無効な H3 グリッドエンコーディングを入力した場合、この関数は空のセットを返します。

    -- 空の文字列を入力
    SELECT H3_CellToBoundary('') AS boundary;
    
    -- NULL を入力
    SELECT H3_CellToBoundary(NULL) AS boundary;
    
    -- 無効な H3 グリッドエンコーディングを入力
    SELECT H3_CellToBoundary(0) AS boundary;

    返される結果:

    +----------+
    | boundary |
    +----------+
    | []       |
    +----------+

グリッド検証

H3_IsValidCell

入力の H3 グリッドエンコーディングが有効かどうかを検証します。エンコーディングが有効な場合、この関数は true を返します。それ以外の場合は false を返します。入力が空文字列または NULL の場合、この関数は false を返します。

構文

boolean H3_IsValidCell(Long H3Cell)
boolean H3_IsValidCell(string H3Cell)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディングです。データ型は LONG または文字列です。

例

  • 例 1:入力された H3 グリッドエンコーディングが有効かどうかを確認します。次の例は有効な入力を示しています。

    -- LONG 型の H3 グリッドコードを入力します
    SELECT H3_IsValidCell(599686042433355775) AS isValid;
    
    -- STRING 型の H3 グリッドコードを入力します
    SELECT H3_IsValidCell('85283473fffffff') AS isValid;

    返された結果:

    +---------+
    | isValid |
    +---------+
    | true    |
    +---------+
  • 例 2:入力された H3 グリッドエンコーディングが有効かどうかを確認します。次の例は無効な入力を示しています。

    -- LONG 型の H3 グリッドコードを入力します
    SELECT H3_IsValidCell(12) AS isValid;
    
    -- STRING 型の H3 グリッドコードを入力します
    SELECT H3_IsValidCell('abc') AS isValid;

    返された結果:

    +---------+
    | isValid |
    +---------+
    | false   |
    +---------+
  • 例 3:入力が空文字列または NULL の場合、この関数は false を返します。

    -- 入力が空です
    SELECT H3_IsValidCell('') AS isValid;
    
    -- NULL を入力します
    SELECT H3_IsValidCell(NULL) AS isValid;

    返された結果:

    +---------+
    | isValid |
    +---------+
    | false   |
    +---------+

H3_GetResolution

入力の H3 グリッドエンコーディングの解像度を返します。

構文

Int H3_GetResolution(Long H3Cell)
Int H3_GetResolution(string H3Cell)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディングです。データ型は LONG または文字列です。

例

  • 例 1:LONG 形式の H3 グリッドエンコーディングを入力して、グリッドの解像度を返します。

    SELECT H3_GetResolution(599686042433355775) AS resolution;

    返された結果:

    +------------+
    | resolution |
    +------------+
    | 5          |
    +------------+
  • 例 2:文字列形式の H3 グリッドエンコーディングを入力して、グリッドの解像度を返します。

    SELECT H3_GetResolution('85283473fffffff') AS resolution;

    返された結果:

    +------------+
    | resolution |
    +------------+
    | 5          |
    +------------+

H3_AreNeighborCells

2 つの H3 グリッドが空間的に隣接しているかどうかを確認します。隣接している場合、この関数は true を返します。それ以外の場合は false を返します。いずれかのエンコーディングが無効、NULL、または 2 つのエンコーディングの解像度が異なる場合、この関数は false を返します。

説明

H3_AreNeighborCells 関数を使用する前に、H3_GetResolution 関数を使用して H3 グリッドの解像度を取得してください。H3_GetResolution 関数の使用方法の詳細については、「H3_GetResolution」をご参照ください。

構文

boolean H3_AreNeighborCells(Long H3Cell1, Long H3Cell2)
boolean H3_AreNeighborCells(string H3Cell1, string H3Cell2)

パラメーター

パラメーター

説明

H3Cell1、H3Cell2

H3 グリッドエンコーディングです。データ型は LONG または文字列です。

例

  • 例 1:LONG 形式の 2 つの H3 グリッドエンコーディングを入力して、対応する H3 グリッドが空間的に隣接しているかどうかを確認します。

    SELECT H3_AreNeighborCells(605546022931791871, 605546023066009599) as isNeighbor;

    返された結果:

    +------------+
    | isNeighbor |
    +------------+
    | true       |
    +------------+
  • 例 2:文字列形式の 2 つの H3 グリッドエンコーディングを入力して、対応する H3 グリッドが空間的に隣接しているかどうかを確認します。

    SELECT H3_AreNeighborCells('86754e66fffffff','86754e64fffffff') as isNeighbor;

    返された結果:

    +------------+
    | isNeighbor |
    +------------+
    | true       |
    +------------+
  • 例 3:H3 グリッドエンコーディングが無効、いずれかの入力が NULL、または 2 つの H3 グリッドの解像度が異なる場合、この関数は false を返します。

    -- 入力された H3 グリッドコードは無効です
    SELECT H3_AreNeighborCells(1234,5678) as isNeighbor;
    
    -- いずれかの H3 グリッドコードが NULL です
    SELECT H3_AreNeighborCells(1234,NULL) as isNeighbor;
    
    -- 2 つの H3 グリッドの解像度が異なります:'85283473fffffff' の解像度は 5、'87283082bffffff' の解像度は 7 です
    SELECT H3_AreNeighborCells('85283473fffffff','87283082bffffff') as isNeighbor;

    返された結果:

    +------------+
    | isNeighbor |
    +------------+
    | false      |
    +------------+

H3_Contains

H3Cells セット (H3 グリッドエンコーディングのセット) が、指定の H3 グリッドを含むかどうかを確認します。

H3Cells 内のエンコーディングに対応するグリッドを A 、指定した H3 グリッドを B とします。次のいずれかの条件を満たす場合、この関数は true を返します:

  • A と B が同一である。

  • B が A の子グリッドである。

H3 グリッドエンコーディングが無効または NULL の場合、この関数は false を返します。H3Cells セットに無効なグリッドエンコーディングが含まれている場合、計算時に無効なエンコーディングは無視され、エラーは報告されません。

構文

boolean H3_Contains(Set<Long> H3Cells, Long H3)

パラメーター

パラメーター

説明

H3Cells

H3 グリッドエンコーディングのセットです。

H3

指定した H3 グリッドエンコーディングです。

例

  • 例 1:有効な H3Cells セットが、指定の H3 グリッドを含むかどうかを確認します。

    SELECT H3_Contains(H3_PolygonToCells(ST_GeomFromText('POLYGON((-122.481889 37.826683,-122.479487 37.808548,-122.474150 37.808904,-122.476510 37.826935,-122.481889 37.826683))'), 9),H3(-122.47801264775836, 37.81777525405899)) AS isContained;

    返された結果:

    +-------------+
    | isContained |
    +-------------+
    | true        |
    +-------------+

    true は、含まれていることを示します。

  • 例 2:有効な H3Cells セットが、指定の H3 グリッドを含むかどうかを確認します。

    SELECT H3_Contains(H3_PolygonToCells(ST_GeomFromText('POLYGON((-122.481889 37.826683,-122.479487 37.808548,-122.474150 37.808904,-122.476510 37.826935,-122.481889 37.826683))'), 9), 605546022931791871) AS isContained;

    返された結果:

    +-------------+
    | isContained |
    +-------------+
    | false       |
    +-------------+

    false は、包含関係が存在しないことを示します。

  • 例 3:入力の H3 グリッドエンコーディングが無効または NULL の場合、この関数は false を返します。

    -- 入力された H3 グリッドコードは NULL です
    SELECT H3_Contains(H3_PolygonToCells(ST_GeomFromText('POLYGON((-122.481889 37.826683,-122.479487 37.808548,-122.474150 37.808904,-122.476510 37.826935,-122.481889 37.826683))'), 9), NULL) AS isContained;
    
    -- 入力された H3 グリッドコードは無効です
    SELECT H3_Contains(H3_PolygonToCells(ST_GeomFromText('POLYGON((-122.481889 37.826683,-122.479487 37.808548,-122.474150 37.808904,-122.476510 37.826935,-122.481889 37.826683))'), 9), 1233453435457) AS isContained;

    返された結果:

    +-------------+
    | isContained |
    +-------------+
    | false       |
    +-------------+

グリッド操作

H3_CellToParent

H3 グリッドエンコーディングと指定のレベルを引数に取り、そのレベルにおける親グリッドのエンコーディングを返します。

入力グリッドエンコーディングが無効な場合、または入力レベルが現在のエンコーディングのレベルより下位の場合、この関数は -1 または空の文字列を返します。 指定レベルが現在のグリッドのレベルと同じ場合、グリッド自体を返します。

説明

H3 グリッドでは、レベル番号が大きいほど下位のレベルを示します。 たとえば、レベル 5 はレベル 0 の子です。 グリッドのレベルをクエリするには、H3_GetResolution 関数を使用します。 詳細については、「H3_GetResolution」をご参照ください。

構文

Long H3_CellToParent(Long H3Cell, Int resolution)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディング。 型は LONG です。

resolution

指定するグリッドレベル。 値は [0, H3Cell のレベル] の範囲内である必要があります。 たとえば、H3Cell のレベルが 5 の場合、resolution の値は [0, 5] の範囲内である必要があります。

例

  • 例 1:LONG 型の H3 グリッドエンコーディングを入力し、レベル 0 の親グリッドのエンコーディングを返します。

    SELECT H3_CellToParent(599686042433355775, 0) AS parent;

    返された結果:

    +--------------------+
    |       parent       |
    +--------------------+
    | 577199624117288959 |
    +--------------------+
  • 例 2:指定の H3 グリッドコードに対し、レベル 5 の親グリッドのグリッドコードを返します。

    SELECT H3_CellToParent(599686042433355775, 5) AS parent;

    返された結果:

    +--------------------+
    |       parent       |
    +--------------------+
    | 599686042433355775 |
    +--------------------+
  • 例 3:グリッドエンコーディングが無効または NULL の場合、あるいは入力レベルが現在のエンコーディングのレベルより下位または NULL の場合、この関数は -1 を返します。

    -- 入力グリッドコードは無効です
    SELECT H3_CellToParent(123, 5) AS parent;
    
    -- 入力解像度は現在のコードの子です
    SELECT H3_CellToParent(599686042433355775, 9) AS parent;
    
    -- 入力解像度は NULL です
    SELECT H3_CellToParent(599686042433355775, NULL) AS parent;
    
    -- グリッドコードと解像度の両方が NULL です
    SELECT H3_CellToParent(NULL, NULL) AS parent;

    返された結果:

    +--------+
    | parent |
    +--------+
    | -1     |
    +--------+

H3_CellToChildren

H3 グリッドについて、指定レベルのすべての子グリッドのエンコーディング配列を返します。

入力グリッドエンコーディングが無効な場合、または入力レベルが現在のエンコーディングのレベルより上位か同じレベルである場合、この関数は空の配列を返します。

説明

H3 グリッドでは、レベル番号が大きいほど下位のレベルを示します。 たとえば、レベル 5 はレベル 0 の子です。 グリッドのレベルをクエリするには、H3_GetResolution 関数を使用します。 詳細については、「H3_GetResolution」をご参照ください。

構文

Set<Long> H3_CellToChildren(Long H3Cell, Int resolution)
Set<String> H3_CellToChildren(string H3Cell, Int resolution)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディング。 型は LONG または STRING です。

resolution

指定するグリッドレベル。 値は (H3Cell のレベル, 15] の範囲内である必要があります。 たとえば、H3Cell のレベルが 5 の場合、resolution の値は (5, 15] の範囲内である必要があります。

例

  • 例 1:LONG 型の H3 グリッドエンコーディングを入力し、レベル 6 のすべての子グリッドのエンコーディングを返します。

    SELECT H3_CellToChildren(599686042433355775, 6) AS children;

    返された結果:

    +--------------------------------+
    |            children            |
    +--------------------------------+
    | [604189641121202175,           |
    | 604189641255419903,            |
    | 604189641389637631,            |
    | 604189641523855359,            |
    | 604189641658073087,            |
    | 604189641792290815,            |
    | 604189641926508543]            |
    +--------------------------------+
  • 例 2:STRING 型の H3 グリッドエンコーディングを入力し、レベル 6 のすべての子グリッドのエンコーディングを返します。

    SELECT H3_CellToChildren('85283473fffffff', 6) AS children;

    返された結果:

    +--------------------------------+
    |            children            |
    +--------------------------------+
    | [86283470fffffff,              |
    | 862834727ffffff,               |
    | 862834737ffffff,               |
    | 862834707ffffff,               |
    | 862834717ffffff,               |
    | 86283471fffffff,               |
    | 86283472fffffff]               |
    +--------------------------------+
  • 例 3:グリッドエンコーディングが無効な場合、または指定レベルが現在のエンコーディングのレベルより上位か同じである場合、この関数は空の配列を返します。

    -- 入力グリッドコードは無効です
    SELECT H3_CellToChildren(0,15) AS children;
    
    -- 指定された解像度は現在のコードの親です
    SELECT H3_CellToChildren('85283473fffffff', 3) AS children;
    
    -- 指定された解像度が現在のコードの解像度と等しい
    SELECT H3_CellToChildren('85283473fffffff', 5) AS children;

    返された結果:

    +----------+
    | children |
    +----------+
    | []       |
    +----------+

グリッドクエリ

H3_GridPathCells

指定された2つの H3 グリッド間のパスを H3 グリッドの配列として返します。 パスには、始点と終点の H3 グリッドが含まれます。 入力 H3 グリッドエンコーディングが無効な場合、この関数は空の配列を返します。 2つの入力エンコーディングの解像度が異なる場合、この関数は空の配列を返します。

構文

Set<Long> H3_GridPathCells(Long startCell, Long endCell)
Set<String> H3_GridPathCells(String startCell, String endCell)

パラメーター

パラメーター

説明

startCell

始点の H3 グリッドエンコーディング。 型は LONG または STRING です。

説明

startCell と endCell は同じ型である必要があります。

endCell

終点の H3 グリッドエンコーディング。 型は LONG または STRING です。

説明

endCell と startCell は同じ型である必要があります。

例

  • 例 1:2つの H3 グリッドエンコーディングを入力し、2つのグリッド間のパスを返します。

    SELECT H3_GridPathCells(H3(123.1, 25.1, 8),H3(123.2, 25.2, 8)) AS pathCell;

    返された結果:

    +--------------------------------+
    |            pathCell            |
    +--------------------------------+
    | [613820806174081023,           |
    | 613820806136332287,            |
    | 613820806132137983,            |
    | 613820806325075967,            |
    | 613820789795323903,            |
    | 613820789791129599,            |
    | 613820789942124543,            |
    | 613820806163595263,            |
    | 613820806327173119,            |
    | 613820806314590207,            |
    | 613820789986164735,            |
    | 613820789981970431,            |
    | 613820789944221695,            |
    | 613820789940027391,            |
    | 613820789969387519,            |
    | 613820789965193215,            |
    | 613820789709340671,            |
    | 613820789705146367]            |
    +--------------------------------+
  • 例 2:入力 H3 グリッドエンコーディングが無効な場合、この関数は空の配列を返します。

    SELECT H3_GridPathCells(587769229395099647, 123) as pathCell;

    返された結果:

    +----------+
    | pathCell |
    +----------+
    | []       |
    +----------+
  • 例 3:2つの入力グリッドエンコーディングのレベルが異なる場合、この関数は空の配列を返します。

    -- 2 つのグリッドの解像度が異なります: 587769229395099647 の解像度は 2、599686042433355775 の解像度は 5 です
    SELECT H3_GridPathCells(587769229395099647, 599686042433355775) as pathCell;

    返された結果:

    +----------+
    | pathCell |
    +----------+
    | []       |
    +----------+

H3_GridDisk

H3 グリッドエンコーディングとグリッド距離 k を入力として、指定グリッドから距離 k 以内にある、同じレベルのすべての H3 グリッドエンコーディングの配列を返します。 たとえば、入力グリッドが A で k=1 の場合、この関数はグリッド A とそれを取り囲むリング状のグリッドを返します。 k=2 の場合、グリッド A とそれを取り囲む2つのリング状のグリッドを返します。

入力 H3 グリッドエンコーディングが NULL または無効な場合、この関数は空の配列を返します。 入力グリッド距離 k が 0 の場合、グリッド自体を返します。

構文

Set<Long> H3_GridDisk(Long H3Cell, Int k)
Set<String> H3_GridDisk(String H3Cell, Int k)

パラメーター

パラメーター

説明

H3Cell

H3 グリッドエンコーディング。 型は LONG または STRING です。

k

グリッド距離。

例

  • 例 1:中心グリッドから距離 1 以内にあるすべてのグリッドエンコーディングを返します。

    SELECT H3_GridDisk(599686042433355775, 1) AS grid;

    返された結果:

    +--------------------------------+
    |              grid              |
    +--------------------------------+
    | [599686015589810175,           |
    | 599686014516068351,            |
    | 599686038138388479,            |
    | 599686042433355775,            |
    | 599686044580839423,            |
    | 599686043507097599,            |
    | 599686030622195711]            |
    +--------------------------------+
  • 例 2:距離 0 を指定して、グリッド自体を返します。

    SELECT H3_GridDisk(599686042433355775, 0) AS grid;

    返された結果:

    +----------------------+
    |         grid         |
    +----------------------+
    | [599686042433355775] |
    +----------------------+
  • 例 3:入力 H3 グリッドが NULL または無効な場合、この関数は空の配列を返します。

    -- 入力 H3 グリッドコードは NULL です
    SELECT H3_GridDisk(NULL, 0) AS grid;
    
    -- 入力 H3 グリッドコードは無効です
    SELECT H3_GridDisk(123456, 0) AS grid;

    返された結果:

    +------+
    | grid |
    +------+
    | []   |
    +------+

距離計算

H3_Distance

2D 平面上で、指定された2つの H3 グリッドの重心間のユークリッド距離を返します。 入力 H3 グリッドエンコーディングが NULL または無効な場合、または 2つのグリッドのレベルが異なる場合、この関数は -1 を返します。

構文

BigDecimal H3_Distance(Long startCell, Long endCell)
BigDecimal H3_Distance(String startCell, String endCell)

パラメーター

パラメーター

説明

startCell

始点の H3 グリッドエンコーディング。 型は LONG または STRING です。

説明

startCell と endCell は同じ型である必要があります。

endCell

終点の H3 グリッドエンコーディング。 型は LONG または STRING です。

説明

endCell と startCell は同じ型である必要があります。

例

  • 例 1:LONG 型の 2つの H3 グリッドエンコーディングを入力し、2D 平面上のグリッド重心間のユークリッド距離を返します。

    SELECT H3_distance(587769229395099647, 587026509290536959) as distance;

    返された結果:

    +-------------------+
    |     distance      |
    +-------------------+
    | 4.489061432072522 |
    +-------------------+
  • 例 2:STRING 型の 2つの H3 グリッドエンコーディングを入力し、2D 平面上のグリッド重心間のユークリッド距離を返します。

    SELECT H3_distance('825897fffffffff','8282cffffffffff') as distance;

    返された結果:

    +-------------------+
    |     distance      |
    +-------------------+
    | 4.489061432072522 |
    +-------------------+
  • 例 3:入力 H3 グリッドエンコーディングが NULL または無効な場合、または 2つのグリッドのレベルが異なる場合、この関数は -1 を返します。

    -- 入力 H3 グリッドコードは無効です
    SELECT H3_distance(587769229395099647, 345) AS distance;
    
    -- 入力 H3 グリッドコードは NULL です
    SELECT H3_distance(587769229395099647, NULL) AS distance;
    
    -- 2 つの H3 グリッドの解像度が異なります: 587769229395099647 の解像度は 2、599686042433355775 の解像度は 5 です
    SELECT H3_distance(587769229395099647, 599686042433355775) AS distance;

    返された結果:

    +----------+
    | distance |
    +----------+
    | -1       |
    +----------+

H3_DistanceSphere

WGS84 座標系において、指定された2つの H3 グリッドの重心間の球面距離をメートル (m) 単位で返します。 入力 H3 グリッドエンコーディングが NULL または無効な場合、または 2つのグリッドのレベルが異なる場合、この関数は -1 を返します。

構文

BigDecimal H3_DistanceSphere(Long startCell, Long endCell)
BigDecimal H3_DistanceSphere(String startCell, String endCell)

パラメーター

パラメーター

説明

startCell

始点の H3 グリッドエンコーディング。 型は LONG または STRING です。

説明

startCell と endCell は同じ型である必要があります。

endCell

終点の H3 グリッドエンコーディング。 型は LONG または STRING です。

説明

endCell と startCell は同じ型である必要があります。

例

  • 例 1:LONG 型の 2つの H3 グリッドエンコーディングを入力し、WGS84 座標系でグリッド重心間の球面距離を返します。

    SELECT H3_DistanceSphere(587769229395099647, 587026509290536959) as distance;

    返された結果:

    +--------------------+
    |      distance      |
    +--------------------+
    | 497180.06581361144 |
    +--------------------+
  • 例 2:STRING 型の 2つの H3 グリッドエンコーディングを入力し、WGS84 座標系でグリッド重心間の球面距離を返します。

    SELECT H3_DistanceSphere('825897fffffffff','8282cffffffffff') as distance;

    返された結果:

    +--------------------+
    |      distance      |
    +--------------------+
    | 497180.06581361144 |
    +--------------------+
  • 例 3:入力 H3 グリッドエンコーディングが NULL または無効な場合、または 2つのグリッドのレベルが異なる場合、この関数は -1 を返します。

    -- 入力 H3 グリッドコードは無効です
    SELECT H3_DistanceSphere(587769229395099647, 345) AS distance;
    
    -- 入力 H3 グリッドコードは NULL です
    SELECT H3_DistanceSphere(587769229395099647, NULL) AS distance;
    
    -- 2 つのグリッドの解像度が異なります: 587769229395099647 の解像度は 2、599686042433355775 の解像度は 5 です
    SELECT H3_DistanceSphere(587769229395099647, 599686042433355775) AS distance;

    返された結果:

    +----------+
    | distance |
    +----------+
    | -1       |
    +----------+