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.
PentingJika 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 | Mengonversi pasangan lintang/bujur atau titik koordinat menjadi indeks H3 pada resolusi tertentu. | |
Mengonversi tipe data indeks H3 dari LONG ke STRING. | ||
Mengonversi tipe data indeks H3 dari STRING ke LONG. | ||
Mengeluarkan array indeks H3 dari poligon pada resolusi tertentu. | ||
Ekspor data | Mengeluarkan batas poligon dari sel H3 yang ditentukan. | |
Penentuan sel | Menentukan apakah indeks H3 input valid. | |
Mengembalikan resolusi indeks H3 input. | ||
Menentukan apakah dua sel H3 berdekatan secara spasial. Jika kedua sel berdekatan, | ||
Menentukan apakah sel yang ditunjuk oleh objek H3Cells yang ditentukan mengandung sel H3 yang ditentukan. | ||
Operasi sel H3 | Mengembalikan indeks H3 dari sel induk dari sel H3 yang ditentukan pada resolusi yang ditentukan. | |
Mengembalikan indeks H3 dari sel anak dari sel H3 yang ditentukan pada resolusi yang ditentukan. | ||
Pertanyaan terkait sel H3 | Mendapatkan jalur antara dua sel H3. | |
Mengembalikan indeks H3 dari semua sel yang jaraknya dari sel pusat kurang dari jarak k yang ditentukan. | ||
Perhitungan jarak | Mengembalikan jarak Euclidean 2D antara titik pusat dua sel H3 yang ditentukan. | |
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
-1dikembalikan.-- 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
falsedikembalikan.-- 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.
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
falsedikembalikan.-- 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:
AdanBidentik.Badalah sel anak dariA.
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
truedikembalikan, 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
falsedikembalikan, 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
falsedikembalikan.-- 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.
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
-1dikembalikan.-- 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.
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
nulldikembalikan.-- 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
-1dikembalikan.-- 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
-1dikembalikan.-- 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 | +----------+