全部产品
Search
文档中心

:Fungsi H3

更新时间:Jul 02, 2025

Anda dapat menggunakan fungsi H3 yang disediakan oleh Lindorm GanosBase untuk menganalisis atau menanyakan data spasial secara efisien berdasarkan grid H3. Fungsi ini membantu Anda memproses indeks H3, seperti mengonversi tipe indeks, menanyakan hubungan antar sel, menanyakan resolusi sel, dan menghitung jarak antar sel. Topik ini menjelaskan semua fungsi H3 yang didukung oleh Lindorm GanosBase.

Mesin dan versi yang berlaku

  • Fungsi H3 yang dijelaskan dalam topik ini hanya berlaku untuk LindormTable.

  • Fungsi H3 yang dijelaskan dalam topik ini didukung oleh LindormTable 2.6.5 dan versi yang lebih baru. Untuk informasi lebih lanjut tentang cara melihat atau meningkatkan versi LindormTable, lihat Catatan Rilis LindormTable dan Tingkatkan Versi Mesin Minor dari Instance Lindorm.

    Penting

    Jika versi LindormTable dari instance Lindorm Anda lebih awal dari 2.6.5 dan tidak dapat ditingkatkan, hubungi dukungan teknis (ID DingTalk: s0s3eg3).

Fungsi

Tabel berikut menunjukkan fungsi H3 yang didukung oleh Lindorm GanosBase.

Kategori

Fungsi

Deskripsi

Impor dan konversi data

H3

Mengonversi pasangan lintang/bujur atau titik koordinat menjadi indeks H3 pada resolusi tertentu.

H3_H3ToString

Mengonversi tipe data indeks H3 dari LONG ke STRING.

H3_StringToH3

Mengonversi tipe data indeks H3 dari STRING ke LONG.

H3_PolygonToCells

Mengeluarkan array indeks H3 dari poligon pada resolusi tertentu.

Ekspor data

H3_CellToBoundary

Mengeluarkan batas poligon dari sel H3 yang ditentukan.

Penentuan sel

H3_IsValidCell

Menentukan apakah indeks H3 input valid.

H3_GetResolution

Mengembalikan resolusi indeks H3 input.

H3_AreNeighborCells

Menentukan apakah dua sel H3 berdekatan secara spasial. Jika kedua sel berdekatan, true dikembalikan. Sebaliknya, false dikembalikan.

H3_Contains

Menentukan apakah sel yang ditunjuk oleh objek H3Cells yang ditentukan mengandung sel H3 yang ditentukan.

Operasi sel H3

H3_CellToParent

Mengembalikan indeks H3 dari sel induk dari sel H3 yang ditentukan pada resolusi yang ditentukan.

H3_CellToChildren

Mengembalikan indeks H3 dari sel anak dari sel H3 yang ditentukan pada resolusi yang ditentukan.

Pertanyaan terkait sel H3

H3_GridPathCells

Mendapatkan jalur antara dua sel H3.

H3_GridDisk

Mengembalikan indeks H3 dari semua sel yang jaraknya dari sel pusat kurang dari jarak k yang ditentukan.

Perhitungan jarak

H3_Distance

Mengembalikan jarak Euclidean 2D antara titik pusat dua sel H3 yang ditentukan.

H3_DistanceSphere

Mengembalikan jarak bola antara titik pusat dua sel H3 yang ditentukan dalam WGS84.

Impor dan konversi data

H3

Fungsi ini mengonversi pasangan lintang/bujur atau titik koordinat menjadi indeks H3 pada resolusi yang ditentukan.

Sintaksis

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

Parameter

Parameter

Deskripsi

p

Titik koordinat dari tipe data POINT.

lng

Nilai bujur dari tipe data DOUBLE.

lat

Nilai lintang dari tipe data DOUBLE.

resolution

Resolusi indeks H3 dari tipe data INT. Nilai valid: 0 hingga 15. Nilai default: 15.

Contoh

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;

Hasil berikut dikembalikan untuk pernyataan contoh sebelumnya:

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

H3_H3ToString

Fungsi ini mengonversi tipe data indeks H3 dari LONG ke STRING. Jika indeks H3 input adalah NULL atau tidak valid, string kosong dikembalikan.

Sintaksis

String H3_H3ToString(Long H3Cell)

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 dari tipe data LONG.

Contoh

  • Contoh 1: Mengonversi tipe data indeks H3 dari LONG ke STRING.

    SELECT H3_H3ToString(599686042433355775) AS H3Address;

    Hasil berikut dikembalikan:

    +-----------------+
    |    H3Address    |
    +-----------------+
    | 85283473fffffff |
    +-----------------+
  • Contoh 2: Periksa apakah indeks H3 input valid. Jika indeks H3 input adalah NULL atau tidak valid, string kosong dikembalikan.

    -- Input indeks H3 yang tidak valid.
    SELECT H3_H3ToString(0) AS H3Address;
    
    --Input nilai NULL.
    SELECT H3_H3ToString(NULL) AS H3Address;

    Hasil berikut dikembalikan:

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

H3_StringToH3

Fungsi ini mengonversi tipe data indeks H3 dari STRING ke LONG. Jika indeks H3 input adalah string kosong atau tidak valid, nilai -1 dikembalikan.

Sintaksis

Long H3_StringToH3(string H3Cell)

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 dari tipe data STRING.

Contoh

  • Contoh 1: Mengonversi tipe data indeks H3 dari STRING ke LONG.

    SELECT H3_StringToH3('85283473fffffff') AS H3Cell;

    Hasil berikut dikembalikan:

    +--------------------+
    |       H3Cell       |
    +--------------------+
    | 599686042433355775 |
    +--------------------+

  • Contoh 2: Periksa apakah indeks H3 input valid. Jika indeks H3 input adalah string kosong atau tidak valid, nilai -1 dikembalikan.

    -- Input indeks H3 yang tidak valid.
    SELECT H3_StringToH3('abc') AS H3Cell;
    
    -- Input string kosong.
    SELECT H3_StringToH3('') AS H3Cell;

    Hasil berikut dikembalikan:

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

H3_PolygonToCells

Fungsi ini mengeluarkan array indeks H3 dari poligon pada resolusi yang ditentukan.

Sintaksis

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

Parameter

Parameter

Deskripsi

poly

Objek poligon dari tipe data POLYGON.

resolution

Resolusi indeks H3. Nilai valid: 0 hingga 15.

Contoh

Input poligon yang valid dan tentukan resolusi indeks H3 sebagai 9. Array indeks H3 yang merepresentasikan poligon dikembalikan.

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;

Hasil berikut dikembalikan:

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

Ekspor data

H3_CellToBoundary

Fungsi ini mengeluarkan batas poligon dari sel H3 yang ditentukan. Jika indeks H3 input adalah string kosong, NULL, atau tidak valid, array kosong dikembalikan.

Sintaksis

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

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 dari tipe data LONG atau STRING.

Contoh

  • Contoh 1: Dapatkan batas poligon dari sel H3 yang ditentukan oleh indeks H3 input dengan tipe data STRING.

    SELECT H3_CellToBoundary('85283473fffffff') AS boundary;

    Hasil berikut dikembalikan:

    +--------------------------------+
    |            batas               |
    +--------------------------------+
    | [Titik (-121.92354999630157    |
    | 37.42834118609436), Titik      |
    | (-122.02910130919003           |
    | 37.26319797461824), Titik      |
    | (-121.91508032705622           |
    | 37.27135586673191),            |
    | Titik (-122.090428929044       |
    | 37.33755608435299), Titik      |
    | (-121.86222328902491           |
    | 37.353926450852256),           |
    | Titik (-122.03773496427027     |
    | 37.42012867767779)]            |
    +--------------------------------+
  • Contoh 2: Dapatkan batas poligon dari sel H3 yang ditentukan oleh indeks H3 input dengan tipe data LONG.

    SELECT H3_CellToBoundary(599686042433355775) AS boundary;

    Hasil berikut dikembalikan:

    +--------------------------------+
    |            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)]            |
    +--------------------------------+
  • Contoh 3: Masukkan string kosong, NULL, atau nilai tidak valid sebagai indeks H3. Array kosong akan dikembalikan.

    -- Masukkan string kosong.
    SELECT H3_CellToBoundary('') AS boundary;
    
    -- Masukkan nilai NULL.
    SELECT H3_CellToBoundary(NULL) AS boundary;
    
    -- Masukkan indeks H3 yang tidak valid.
    SELECT H3_CellToBoundary(0) AS boundary;

    Hasil berikut akan dikembalikan:

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

Penentuan Sel

H3_IsValidCell

Fungsi ini menentukan apakah indeks H3 yang dimasukkan valid. Jika indeks H3 yang dimasukkan valid, true akan dikembalikan. Jika tidak, false akan dikembalikan. Jika indeks H3 yang dimasukkan adalah string kosong atau NULL, false akan dikembalikan.

Sintaks

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

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 dengan tipe data LONG atau STRING.

Contoh

  • Contoh 1: Periksa apakah indeks H3 yang dimasukkan valid. Indeks H3 dalam pernyataan sampel berikut valid:

    -- Masukkan indeks H3 dengan tipe data LONG.
    SELECT H3_IsValidCell(599686042433355775) AS isValid;
    
    -- Masukkan indeks H3 dengan tipe data STRING.
    SELECT H3_IsValidCell('85283473fffffff') AS isValid;

    Hasil berikut dikembalikan:

    +---------+
    | isValid |
    +---------+
    | true    |
    +---------+
  • Contoh 2: Periksa apakah indeks H3 yang dimasukkan valid. Indeks H3 dalam pernyataan sampel berikut tidak valid:

    -- Masukkan indeks H3 dengan tipe data LONG.
    SELECT H3_IsValidCell(12) AS isValid;
    
    -- Masukkan indeks H3 dengan tipe data STRING.
    SELECT H3_IsValidCell('abc') AS isValid;

    Hasil berikut dikembalikan:

    +---------+
    | isValid |
    +---------+
    | false   |
    +---------+
  • Contoh 3: Masukkan string kosong atau NULL sebagai indeks H3. Nilai false dikembalikan.

    -- Masukkan string kosong.
    SELECT H3_IsValidCell('') AS isValid;
    
    -- Masukkan nilai NULL.
    SELECT H3_IsValidCell(NULL) AS isValid;

    Hasil berikut dikembalikan:

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

H3_GetResolution

Fungsi ini mengembalikan resolusi dari indeks H3 yang dimasukkan.

Sintaks

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

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 dengan tipe data LONG atau STRING.

Contoh

  • Contoh 1: Kembalikan resolusi dari indeks H3 masukan dengan tipe data LONG.

    SELECT H3_GetResolution(599686042433355775) AS resolution;

    Hasil berikut dikembalikan:

    +------------+
    | resolution |
    +------------+
    | 5          |
    +------------+
  • Contoh 2: Kembalikan resolusi dari indeks H3 masukan dengan tipe data STRING.

    SELECT H3_GetResolution('85283473fffffff') AS resolution;

    Hasil berikut dikembalikan:

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

H3_AreNeighborCells

Fungsi ini menentukan apakah dua sel H3 berdekatan secara spasial. Jika kedua sel berdekatan, true dikembalikan. Jika tidak, false dikembalikan. Jika salah satu indeks H3 yang ditentukan adalah NULL atau tidak valid, atau jika indeks H3 yang ditentukan memiliki resolusi berbeda, false dikembalikan.

Catatan

Sebelum Anda menggunakan fungsi H3_AreNeighborCells, Anda dapat menggunakan fungsi H3_GetResolution untuk memeriksa resolusi indeks H3. Untuk informasi lebih lanjut tentang cara menggunakan fungsi H3_GetResolution, lihat H3_GetResolution.

Sintaks

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

Parameter

Parameter

Deskripsi

H3Cell1, H3Cell2

Indeks H3 dengan tipe data LONG atau STRING.

Contoh

  • Contoh 1: Masukkan dua indeks H3 dengan tipe data LONG dan tentukan apakah sel H3 yang diwakili oleh kedua indeks H3 tersebut berdekatan secara spasial.

    SELECT H3_AreNeighborCells(605546022931791871, 605546023066009599) as isNeighbor;

    Hasil berikut dikembalikan:

    +------------+
    | isNeighbor |
    +------------+
    | true       |
    +------------+
  • Contoh 2: Masukkan dua indeks H3 dengan tipe data STRING dan tentukan apakah sel H3 yang diwakili oleh kedua indeks H3 tersebut berdekatan secara spasial.

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

    Hasil berikut dikembalikan:

    +------------+
    | isNeighbor |
    +------------+
    | true       |
    +------------+
  • Contoh 3: Masukkan dua indeks H3 yang tidak valid, nilai NULL, atau dua indeks H3 dengan resolusi berbeda. Nilai false dikembalikan.

    -- Masukkan dua indeks H3 yang tidak valid.
    SELECT H3_AreNeighborCells(1234,5678) as isNeighbor;
    
    -- Setel salah satu indeks H3 masukan ke NULL.
    SELECT H3_AreNeighborCells(1234,NULL) as isNeighbor;
    
    -- Masukkan dua indeks H3 dengan resolusi berbeda. Indeks H3 '85283473fffffff' memiliki resolusi 5, dan indeks H3 '87283082bffffff' memiliki resolusi 7.
    SELECT H3_AreNeighborCells('85283473fffffff','87283082bffffff') as isNeighbor;

    Hasil berikut dikembalikan:

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

H3_Contains

Fungsi ini menentukan apakah sel yang ditunjukkan oleh objek H3Cells yang ditentukan mengandung sel H3 yang ditentukan.

Sebagai contoh, sel H3 yang ditunjukkan oleh objek H3Cells yang ditentukan mengandung sel H3 bernama A, dan sel H3 lainnya bernama B ditentukan untuk fungsi ini. Fungsi ini mengembalikan true ketika salah satu kondisi berikut terpenuhi:

  • A dan B identik.

  • B adalah sel anak dari A.

Jika indeks H3 B tidak valid atau NULL, false dikembalikan. Jika array indeks H3 dari objek H3Cells berisi indeks H3 yang tidak valid, indeks H3 yang tidak valid diabaikan dan tidak ada kesalahan yang dilaporkan.

Sintaks

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

Parameter

Parameter

Deskripsi

H3Cells

Array indeks H3.

H3

Indeks H3.

Contoh

  • Contoh 1: Periksa apakah sel H3 yang ditentukan terkandung oleh sel yang ditunjukkan oleh objek H3Cells yang valid.

    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;

    Hasil berikut dikembalikan:

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

    Nilai true dikembalikan, yang menunjukkan bahwa sel H3 yang ditentukan terkandung oleh sel yang ditunjukkan oleh objek H3Cells yang valid.

  • Contoh 2: Periksa apakah sel H3 yang ditentukan terkandung oleh sel yang ditunjukkan oleh objek H3Cells yang valid.

    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;

    Hasil berikut dikembalikan:

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

    Nilai false dikembalikan, yang menunjukkan bahwa sel H3 yang ditentukan tidak terkandung oleh sel yang ditunjukkan oleh objek H3Cells yang valid.

  • Contoh 3: Masukkan indeks H3 yang tidak valid atau NULL. Nilai false dikembalikan.

    -- Masukkan indeks H3 yang nilainya 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;
    
    -- Masukkan indeks H3 yang tidak valid.
    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;

    Hasil berikut dikembalikan:

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

Operasi Sel H3

H3_CellToParent

Fungsi ini mengembalikan indeks H3 dari sel induk sel H3 yang ditentukan pada resolusi yang ditentukan.

Jika indeks H3 yang ditentukan tidak valid atau resolusi yang ditentukan adalah resolusi anak dari indeks H3 saat ini, nilai -1 atau string kosong dikembalikan. Jika resolusi yang ditentukan sama dengan resolusi indeks H3 saat ini, indeks H3 dikembalikan.

Catatan

Nilai resolusi yang lebih besar mewakili resolusi pada tingkat yang lebih rendah. Sebagai contoh, resolusi 5 adalah resolusi anak dari resolusi 0. Anda dapat menggunakan fungsi H3_GetResolution untuk menanyakan resolusi sel H3. Untuk informasi lebih lanjut, lihat H3_GetResolution.

Sintaksis

Long H3_CellToParent(Long H3Cell, Int resolution)

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 bertipe data LONG.

resolusi

Resolusi yang ditentukan. Nilai valid: (0, Resolusi nilai H3Cell]. Sebagai contoh, jika resolusi sel H3 yang ditentukan oleh H3Cell adalah 5, rentang nilai parameter resolusi adalah (0, 5].

Contoh

  • Contoh 1: Masukkan indeks H3 bertipe data LONG dan kembalikan indeks H3 dari semua sel induk sel yang ditentukan oleh indeks H3 pada resolusi 0.

    SELECT H3_CellToParent(599686042433355775, 0) AS parent;

    Hasil berikut dikembalikan:

    +--------------------+
    |       parent       |
    +--------------------+
    | 577199624117288959 |
    +--------------------+
  • Contoh 2: Masukkan indeks H3 bertipe data STRING dan kembalikan indeks H3 dari semua sel induk sel yang ditentukan oleh indeks H3 pada resolusi 5.

    SELECT H3_CellToParent(599686042433355775, 5) AS parent;

    Hasil berikut dikembalikan:

    +--------------------+
    |       parent       |
    +--------------------+
    | 599686042433355775 |
    +--------------------+
  • Contoh 3: Masukkan indeks H3 yang tidak valid atau NULL, atau tentukan resolusi yang NULL atau resolusi anak dari indeks H3 saat ini. Nilai -1 dikembalikan.

    -- Masukkan indeks H3 yang tidak valid.
    SELECT H3_CellToParent(123, 5) AS parent;
    
    -- Tentukan resolusi yang merupakan resolusi anak dari indeks H3 saat ini.
    SELECT H3_CellToParent(599686042433355775, 9) AS parent;
    
    -- Tentukan resolusi NULL.
    SELECT H3_CellToParent(599686042433355775, NULL) AS parent;
    
    -- Masukkan indeks H3 NULL dan tentukan resolusi NULL.
    SELECT H3_CellToParent(NULL, NULL) AS parent;

    Hasil berikut dikembalikan:

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

H3_CellToChildren

Fungsi ini mengembalikan indeks H3 dari sel anak sel H3 yang ditentukan pada resolusi yang ditentukan.

Jika indeks H3 yang ditentukan tidak valid atau resolusi yang ditentukan adalah resolusi induk atau resolusi saat ini dari indeks H3, array kosong dikembalikan.

Catatan

Nilai resolusi yang lebih besar mewakili resolusi pada tingkat yang lebih rendah. Sebagai contoh, resolusi 5 adalah resolusi anak dari resolusi 0. Anda dapat menggunakan fungsi H3_GetResolution untuk menanyakan resolusi sel H3. Untuk informasi lebih lanjut, lihat H3_GetResolution.

Sintaksis

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

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 bertipe data LONG atau STRING.

resolusi

Resolusi yang ditentukan. Nilai valid: (Resolusi indeks H3 yang ditentukan, 15]. Sebagai contoh, jika resolusi sel H3 yang ditentukan oleh H3Cell adalah 5, rentang nilai parameter resolusi adalah (5, 15].

Contoh

  • Contoh 1: Masukkan indeks H3 bertipe data LONG dan kembalikan indeks H3 dari semua sel anak sel yang ditentukan oleh indeks H3 pada resolusi 6.

    SELECT H3_CellToChildren(599686042433355775, 6) AS children;

    Hasil berikut dikembalikan:

    +--------------------------------+
    |            children            |
    +--------------------------------+
    | [604189641121202175,           |
    | 604189641255419903,            |
    | 604189641389637631,            |
    | 604189641523855359,            |
    | 604189641658073087,            |
    | 604189641792290815,            |
    | 604189641926508543]            |
    +--------------------------------+
  • Contoh 2: Masukkan indeks H3 bertipe data STRING dan kembalikan indeks H3 dari semua sel anak sel yang ditentukan oleh indeks H3 pada resolusi 6.

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

    Hasil berikut dikembalikan:

    +--------------------------------+
    |            children            |
    +--------------------------------+
    | [86283470fffffff,              |
    | 862834727ffffff,               |
    | 862834737ffffff,               |
    | 862834707ffffff,               |
    | 862834717ffffff,               |
    | 86283471fffffff,               |
    | 86283472fffffff]               |
    +--------------------------------+
  • Contoh 3: Masukkan indeks H3 yang tidak valid, atau tentukan resolusi yang merupakan resolusi induk atau resolusi saat ini dari indeks H3. Array kosong dikembalikan.

    -- Masukkan indeks H3 yang tidak valid.
    SELECT H3_CellToChildren(0,15) AS children;
    
    -- Tentukan resolusi yang merupakan resolusi induk dari indeks H3.
    SELECT H3_CellToChildren('85283473fffffff', 3) AS children;
    
    -- Tentukan resolusi yang merupakan resolusi saat ini dari indeks H3.
    SELECT H3_CellToChildren('85283473fffffff', 5) AS children;

    Hasil berikut dikembalikan:

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

Kueri terkait sel H3

H3_GridPathCells

Mendapatkan jalur sel H3 antara dua sel H3, termasuk sel awal dan sel akhir. Jika indeks H3 yang dimasukkan tidak valid, array kosong akan dikembalikan. Jika resolusi dari dua indeks H3 yang ditentukan berbeda, nilai null akan dikembalikan.

Sintaks

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

Parameter

Parameter

Deskripsi

startCell

Indeks H3 dari sel awal. Tipe data parameter ini adalah LONG atau STRING.

Catatan

Tipe data dari startCell dan endCell harus sama.

endCell

Indeks H3 dari sel akhir. Tipe data parameter ini adalah LONG atau STRING.

Catatan

Tipe data dari startCell dan endCell harus sama.

Contoh

  • Contoh 1: Masukkan dua indeks H3 dan kembalikan jalur antara sel yang ditunjukkan oleh dua indeks H3 tersebut.

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

    Hasil berikut dikembalikan:

    +--------------------------------+
    |            pathCell            |
    +--------------------------------+
    | [613820806174081023,           |
    | 613820806136332287,            |
    | 613820806132137983,            |
    | 613820806325075967,            |
    | 613820789795323903,            |
    | 613820789791129599,            |
    | 613820789942124543,            |
    | 613820806163595263,            |
    | 613820806327173119,            |
    | 613820806314590207,            |
    | 613820789986164735,            |
    | 613820789981970431,            |
    | 613820789944221695,            |
    | 613820789940027391,            |
    | 613820789969387519,            |
    | 613820789965193215,            |
    | 613820789709340671,            |
    | 613820789705146367]            |
    +--------------------------------+
  • Contoh 2: Masukkan indeks H3 yang tidak valid. Array kosong dikembalikan.

    SELECT H3_GridPathCells(587769229395099647, 123) as pathCell;

    Hasil berikut dikembalikan:

    +----------+
    | pathCell |
    +----------+
    | []       |
    +----------+
  • Contoh 3: Masukkan dua indeks H3 dengan resolusi berbeda. Nilai null dikembalikan.

    -- Masukkan dua indeks H3 dengan resolusi berbeda. Indeks H3 '587769229395099647' memiliki resolusi 2, dan indeks H3 '599686042433355775' memiliki resolusi 5.
    SELECT H3_GridPathCells(587769229395099647, 599686042433355775) as pathCell;

    Hasil berikut dikembalikan:

    +----------+
    | pathCell |
    +----------+
    | null     |
    +----------+

H3_GridDisk

Fungsi ini mengembalikan indeks H3 dari semua sel yang jaraknya dari sel pusat yang ditentukan sama dengan atau kurang dari jarak k yang ditentukan pada resolusi tertentu. Sebagai contoh, jika Anda menentukan sel pusat bernama A dan mengatur k ke 1, sel A dan semua sel yang jaraknya dari A adalah 1 akan dikembalikan. Jika Anda mengatur k ke 2, sel A dan semua sel yang jaraknya dari A adalah 2 akan dikembalikan.

Jika indeks H3 yang dimasukkan tidak valid atau NULL, array kosong akan dikembalikan. Jika k diatur ke 0, sel pusat yang ditentukan akan dikembalikan.

Sintaks

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

Parameter

Parameter

Deskripsi

H3Cell

Indeks H3 dengan tipe data LONG atau STRING.

k

Jarak antara sel lain dengan sel pusat.

Contoh

  • Contoh 1: Kembalikan indeks H3 dari semua sel yang jaraknya dari sel pusat sama dengan atau kurang dari 1.

    SELECT H3_GridDisk(599686042433355775, 1) AS grid;

    Hasil berikut dikembalikan:

    +--------------------------------+
    |              grid              |
    +--------------------------------+
    | [599686015589810175,           |
    | 599686014516068351,            |
    | 599686038138388479,            |
    | 599686042433355775,            |
    | 599686044580839423,            |
    | 599686043507097599,            |
    | 599686030622195711]            |
    +--------------------------------+
  • Contoh 2: Kembalikan indeks H3 dari semua sel yang jaraknya dari sel pusat sama dengan 0. Indeks H3 dari sel pusat dikembalikan.

    SELECT H3_GridDisk(599686042433355775, 0) AS grid;

    Hasil berikut dikembalikan:

    +----------------------+
    |         grid         |
    +----------------------+
    | [599686042433355775] |
    +----------------------+
  • Contoh 3: Masukkan indeks H3 yang tidak valid atau NULL, array kosong dikembalikan.

    -- Masukkan indeks H3 yang nilainya NULL.
    SELECT H3_GridDisk(NULL, 0) AS grid;
    
    -- Masukkan indeks H3 yang tidak valid.
    SELECT H3_GridDisk(123456, 0) AS grid;

    Hasil berikut dikembalikan:

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

Perhitungan jarak

H3_Distance

Fungsi ini mengembalikan jarak Euclidean 2D antara titik pusat dari dua sel H3 yang ditentukan. Jika salah satu indeks H3 yang ditentukan tidak valid atau NULL, atau jika dua indeks H3 yang ditentukan memiliki resolusi berbeda, nilai -1 akan dikembalikan.

Sintaksis

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

Parameter

Parameter

Deskripsi

startCell

Indeks H3 dari sel awal. Tipe data parameter ini adalah LONG atau STRING.

Catatan

Tipe data startCell dan endCell harus sama.

endCell

Indeks H3 dari sel akhir. Tipe data parameter ini adalah LONG atau STRING.

Catatan

Tipe data startCell dan endCell harus sama.

Contoh

  • Contoh 1: Masukkan dua indeks H3 dengan tipe data LONG dan kembalikan jarak Euclidean 2D antara titik pusat dari dua sel H3 yang ditentukan oleh indeks H3 tersebut.

    SELECT H3_distance(587769229395099647, 587026509290536959) as distance;

    Hasil berikut dikembalikan:

    +-------------------+
    |     distance      |
    +-------------------+
    | 4,489061432072522 |
    +-------------------+
  • Contoh 2: Masukkan dua indeks H3 dengan tipe data STRING dan kembalikan jarak Euclidean 2D antara titik pusat dari dua sel H3 yang ditentukan oleh indeks H3 tersebut.

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

    Hasil berikut dikembalikan:

    +-------------------+
    |     distance      |
    +-------------------+
    | 4,489061432072522 |
    +-------------------+
  • Contoh 3: Masukkan indeks H3 yang tidak valid atau NULL, atau tentukan dua indeks H3 dengan resolusi berbeda. Nilai -1 dikembalikan.

    -- Masukkan indeks H3 yang tidak valid.
    SELECT H3_distance(587769229395099647, 345) AS distance;
    
    -- Masukkan indeks H3 yang nilainya NULL.
    SELECT H3_distance(587769229395099647, NULL) AS distance;
    
    -- Masukkan dua indeks H3 dengan resolusi berbeda. Indeks H3 '587769229395099647' berada pada resolusi 2, dan indeks H3 '599686042433355775' berada pada resolusi 5.
    SELECT H3_distance(587769229395099647, 599686042433355775) AS distance;

    Hasil berikut dikembalikan:

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

H3_DistanceSphere

Fungsi ini mengembalikan jarak bola dalam meter antara titik pusat dari dua sel H3 yang ditentukan dalam WGS84. Jika salah satu indeks H3 yang dimasukkan tidak valid atau NULL, atau jika resolusi dari indeks H3 yang ditentukan berbeda, nilai -1 dikembalikan.

Sintaksis

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

Parameter

Parameter

Deskripsi

startCell

Indeks H3 dari sel awal. Tipe data parameter ini adalah LONG atau STRING.

Catatan

Tipe data startCell dan endCell harus sama.

endCell

Indeks H3 dari sel akhir. Tipe data parameter ini adalah LONG atau STRING.

Catatan

Tipe data startCell dan endCell harus sama.

Contoh

  • Contoh 1: Masukkan dua indeks H3 dengan tipe data LONG dan kembalikan jarak bola dalam WGS84 antara titik pusat dari dua sel H3 yang ditentukan oleh indeks H3 tersebut.

    SELECT H3_DistanceSphere(587769229395099647, 587026509290536959) as distance;

    Hasil berikut dikembalikan:

    +--------------------+
    |      distance      |
    +--------------------+
    | 497180,06581361144 |
    +--------------------+
  • Contoh 2: Masukkan dua indeks H3 dengan tipe data STRING dan kembalikan jarak bola dalam WGS84 antara titik pusat dari dua sel H3 yang ditentukan oleh indeks H3 tersebut.

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

    Hasil berikut dikembalikan:

    +--------------------+
    |      distance      |
    +--------------------+
    | 497180,06581361144 |
    +--------------------+
  • Contoh 3: Masukkan indeks H3 yang tidak valid atau NULL, atau tentukan dua indeks H3 dengan resolusi berbeda. Nilai -1 dikembalikan.

    -- Masukkan indeks H3 yang tidak valid.
    SELECT H3_DistanceSphere(587769229395099647, 345) AS distance;
    
    -- Masukkan indeks H3 yang nilainya NULL.
    SELECT H3_DistanceSphere(587769229395099647, NULL) AS distance;
    
    -- Masukkan dua indeks H3 dengan resolusi berbeda. Indeks H3 '587769229395099647' berada pada resolusi 2, dan indeks H3 '599686042433355775' berada pada resolusi 5.
    SELECT H3_DistanceSphere(587769229395099647, 599686042433355775) AS distance;

    Hasil berikut dikembalikan:

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