Layanan spasial-temporal Lindorm GanosBase menyediakan fungsi H3 untuk analisis spasial dan kueri efisien pada grid H3. Fungsi-fungsi ini membantu Anda memproses indeks H3 guna mengonversi tipe indeks, mengevaluasi hubungan antar sel, menentukan resolusi sel, serta menghitung jarak antar sel. Topik ini menjelaskan semua fungsi H3 yang didukung oleh layanan spasial-temporal Lindorm GanosBase.
Mesin dan versi
Fungsi H3 hanya tersedia untuk wide table engine.
Versi wide table engine harus 2.6.5 atau lebih baru. Untuk informasi lebih lanjut tentang cara melihat atau melakukan upgrade versi mesin, lihat Versi wide table engine dan Peningkatan versi minor.
PentingJika wide table engine Anda berada pada versi sebelum 2.6.5 dan tidak dapat di-upgrade, hubungi dukungan teknis Lindorm di DingTalk (ID: s0s3eg3) untuk meminta peningkatan.
Daftar fungsi
Tabel berikut mencantumkan fungsi H3 yang didukung oleh Lindorm GanosBase.
Kategori fungsi | Fungsi | Deskripsi |
Impor dan konversi | Mengonversi pasangan bujur-lintang atau koordinat titik menjadi encoding grid H3 pada level tertentu. | |
Mengonversi encoding grid H3 bertipe LONG ke tipe STRING yang sesuai. | ||
Mengonversi encoding grid H3 bertipe STRING ke tipe LONG yang sesuai. | ||
Menghasilkan array encoding grid H3 untuk objek poligon pada level tertentu. | ||
Ekspor | Menghasilkan batas poligon dari grid H3 tertentu. | |
Validasi grid | Memeriksa apakah encoding grid H3 input valid. | |
Mengembalikan level dari encoding grid H3 input. | ||
Memeriksa apakah dua grid H3 berdekatan secara spasial. Mengembalikan | ||
Memeriksa apakah grid dalam array H3Cells (array encoding grid H3) mengandung grid H3 tertentu. | ||
Operasi grid | Menerima encoding grid H3 dan level tertentu sebagai input, lalu mengembalikan encoding grid induk pada level tersebut. | |
Mengembalikan encoding grid anak dari grid H3 pada level tertentu. | ||
Kueri grid H3 | Mendapatkan jalur antara dua grid H3. | |
Menerima jarak grid k sebagai input dan mengembalikan array semua encoding grid H3 yang berada dalam atau pada jarak k dari grid pusat. | ||
Perhitungan jarak | Mengembalikan jarak Euclidean antara pusat dua grid H3 tertentu pada bidang 2D. | |
Mengembalikan jarak bola antara pusat dua grid H3 tertentu dalam sistem koordinat WGS84. |
Impor dan konversi
H3
Mengonversi pasangan bujur-lintang atau koordinat titik menjadi encoding grid H3 pada level tertentu.
Sintaks
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 | Koordinat titik. Tipe datanya adalah POINT. |
lng | Bujur. Tipe datanya adalah DOUBLE. |
lat | Lintang. Tipe datanya adalah DOUBLE. |
resolution | Level grid. Tipe datanya adalah INT. Nilainya berkisar dari 0 hingga 15. Nilai default-nya adalah 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;Pernyataan di atas mengembalikan hasil yang sama:
+--------------------+
| H3Cell |
+--------------------+
| 645317832955184368 |
+--------------------+H3_H3ToString
Mengonversi encoding grid H3 dari tipe LONG ke tipe STRING. Jika input NULL atau encoding grid H3 tidak valid, fungsi ini mengembalikan string kosong.
Sintaks
String H3_H3ToString(Long H3Cell)Parameter
Parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah LONG. |
Contoh
Contoh 1: Mengonversi encoding grid H3 dari tipe LONG ke tipe STRING.
SELECT H3_H3ToString(599686042433355775) AS H3Address;Hasil yang dikembalikan:
+-----------------+ | H3Address | +-----------------+ | 85283473fffffff | +-----------------+Contoh 2: Memeriksa apakah input valid. Jika input kosong atau encoding grid tidak valid, string kosong dikembalikan.
-- Input kode grid tidak valid SELECT H3_H3ToString(0) AS H3Address; -- Input kosong SELECT H3_H3ToString(NULL) AS H3Address;Hasil yang dikembalikan:
+-----------+ | H3Address | +-----------+ | | +-----------+
H3_StringToH3
Mengonversi encoding grid H3 dari tipe STRING ke tipe LONG. Jika input berupa string kosong atau string grid H3 tidak valid, fungsi ini mengembalikan -1.
Sintaks
Long H3_StringToH3(string H3Cell)Parameter
Parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah STRING. |
Contoh
Contoh 1: Input encoding grid H3 bertipe STRING dan konversi ke tipe LONG.
SELECT H3_StringToH3('85283473fffffff') AS H3Cell;Hasil yang dikembalikan:
+--------------------+ | H3Cell | +--------------------+ | 599686042433355775 | +--------------------+Contoh 2: Memeriksa apakah input valid. Jika input berupa string kosong atau string grid H3 tidak valid,
-1dikembalikan.-- Input string grid H3 tidak valid SELECT H3_StringToH3('abc') AS H3Cell; -- Input string kosong SELECT H3_StringToH3('') AS H3Cell;Hasil yang dikembalikan:
+--------+ | H3Cell | +--------+ | -1 | +--------+
H3_PolygonToCells
Menghasilkan array indeks H3 dari poligon pada resolusi tertentu.
Sintaks
Set<Long> H3_PolygonToCells(Polygon poly, Int resolution)Parameter
Parameter | Deskripsi |
poly | Objek poligon. Tipe datanya adalah POLYGON. |
resolution | Level grid. Nilainya harus berada dalam rentang [0, 15]. |
Contoh
Input poligon valid dan tentukan resolusi indeks H3 sebagai 9. Fungsi ini mengembalikan array indeks H3 yang merepresentasikan poligon tersebut.
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:
+--------------------------------+
| polyCells |
+--------------------------------+
| [617700171225497599, |
| 617700171167825919, |
| 617700171168874495, |
| 617700171167563775, |
| 617700171168612351, |
| 617700171168350207, |
| 617700171177525247, |
| 617700171188011007, |
| 617700171176476671] |
+--------------------------------+Ekspor
H3_CellToBoundary
Menghasilkan batas poligon dari grid H3 tertentu. Jika input kosong, NULL, atau encoding grid H3 tidak valid, fungsi ini mengembalikan array kosong.
Sintaks
Set<Point> H3_CellToBoundary(Long H3Cell)
Set<Point> H3_CellToBoundary(string H3Cell)Parameter
Parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah LONG atau STRING. |
Contoh
Contoh 1: Input encoding grid H3 bertipe STRING untuk menghasilkan batas poligon dari grid H3 yang sesuai.
SELECT H3_CellToBoundary('85283473fffffff') AS boundary;Hasil yang 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 2: Input encoding grid H3 bertipe LONG untuk menghasilkan batas poligon dari grid H3 yang sesuai.
SELECT H3_CellToBoundary(599686042433355775) AS boundary;Hasil yang 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: Input nilai kosong, NULL, atau encoding grid H3 tidak valid. Fungsi ini mengembalikan array kosong.
-- Input kosong SELECT H3_CellToBoundary('') AS boundary; -- Input NULL SELECT H3_CellToBoundary(NULL) AS boundary; -- Input kode grid H3 tidak valid SELECT H3_CellToBoundary(0) AS boundary;Hasil yang dikembalikan:
+----------+ | boundary | +----------+ | [] | +----------+
Validasi grid
H3_IsValidCell
Memeriksa apakah encoding grid H3 input valid. Fungsi ini mengembalikan true jika encoding valid; jika tidak, mengembalikan false. Jika input kosong atau NULL, fungsi ini mengembalikan false.
Sintaks
boolean H3_IsValidCell(Long H3Cell)
boolean H3_IsValidCell(string H3Cell)Parameter
Parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah LONG atau STRING. |
Contoh
Contoh 1: Periksa apakah encoding grid H3 input valid. Contoh berikut menunjukkan input valid.
-- Input kode grid H3 bertipe LONG SELECT H3_IsValidCell(599686042433355775) AS isValid; -- Input kode grid H3 bertipe STRING SELECT H3_IsValidCell('85283473fffffff') AS isValid;Hasil yang dikembalikan:
+---------+ | isValid | +---------+ | true | +---------+Contoh 2: Periksa apakah encoding grid H3 input valid. Contoh berikut menunjukkan input tidak valid.
-- Input kode grid H3 bertipe LONG SELECT H3_IsValidCell(12) AS isValid; -- Input kode grid H3 bertipe STRING SELECT H3_IsValidCell('abc') AS isValid;Hasil yang dikembalikan:
+---------+ | isValid | +---------+ | false | +---------+Contoh 3: Input kosong atau NULL. Fungsi ini mengembalikan
false.-- Input kosong SELECT H3_IsValidCell('') AS isValid; -- Input NULL SELECT H3_IsValidCell(NULL) AS isValid;Hasil yang dikembalikan:
+---------+ | isValid | +---------+ | false | +---------+
H3_GetResolution
Mengembalikan level dari encoding grid H3 input.
Sintaks
Int H3_GetResolution(Long H3Cell)
Int H3_GetResolution(string H3Cell)Parameter
Parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah LONG atau STRING. |
Contoh
Contoh 1: Input encoding grid H3 dalam format LONG untuk mengembalikan level grid-nya.
SELECT H3_GetResolution(599686042433355775) AS resolution;Hasil yang dikembalikan:
+------------+ | resolution | +------------+ | 5 | +------------+Contoh 2: Input encoding grid H3 dalam format STRING untuk mengembalikan level grid-nya.
SELECT H3_GetResolution('85283473fffffff') AS resolution;Hasil yang dikembalikan:
+------------+ | resolution | +------------+ | 5 | +------------+
H3_AreNeighborCells
Memeriksa apakah dua grid H3 berdekatan secara spasial. Fungsi ini mengembalikan true jika berdekatan; jika tidak, mengembalikan false. Jika salah satu encoding tidak valid, NULL, atau kedua encoding memiliki level berbeda, fungsi ini mengembalikan false.
Sebelum menggunakan fungsi H3_AreNeighborCells, gunakan fungsi H3_GetResolution untuk mengetahui level grid H3. Untuk informasi lebih lanjut tentang penggunaan 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 | Encoding grid H3. Tipe datanya adalah LONG atau STRING. |
Contoh
Contoh 1: Input dua encoding grid H3 dalam format LONG untuk memeriksa apakah grid H3 yang sesuai berdekatan secara spasial.
SELECT H3_AreNeighborCells(605546022931791871, 605546023066009599) as isNeighbor;Hasil yang dikembalikan:
+------------+ | isNeighbor | +------------+ | true | +------------+Contoh 2: Input dua encoding grid H3 dalam format STRING untuk memeriksa apakah grid H3 yang sesuai berdekatan secara spasial.
SELECT H3_AreNeighborCells('86754e66fffffff','86754e64fffffff') as isNeighbor;Hasil yang dikembalikan:
+------------+ | isNeighbor | +------------+ | true | +------------+Contoh 3: Salah satu encoding grid H3 tidak valid, input NULL, atau kedua grid H3 memiliki level berbeda. Fungsi ini mengembalikan
false.-- Kode grid H3 input tidak valid SELECT H3_AreNeighborCells(1234,5678) as isNeighbor; -- Salah satu kode grid H3 NULL SELECT H3_AreNeighborCells(1234,NULL) as isNeighbor; -- Resolusi kedua grid H3 berbeda: '85283473fffffff' memiliki resolusi 5, '87283082bffffff' memiliki resolusi 7 SELECT H3_AreNeighborCells('85283473fffffff','87283082bffffff') as isNeighbor;Hasil yang dikembalikan:
+------------+ | isNeighbor | +------------+ | false | +------------+
H3_Contains
Memeriksa apakah grid dalam array H3Cells (array encoding grid H3) mengandung grid H3 tertentu.
Asumsikan bahwa grid yang sesuai dengan encoding dalam H3Cells adalah A, dan grid H3 tertentu adalah B. Fungsi ini mengembalikan true jika salah satu kondisi berikut terpenuhi:
Asama denganB.Badalah grid anak dariA.
Jika encoding grid H3 tidak valid atau NULL, fungsi ini mengembalikan false. Jika array H3Cells berisi encoding grid tidak valid, encoding tersebut diabaikan selama perhitungan dan tidak dilaporkan error.
Sintaks
boolean H3_Contains(Set<Long> H3Cells, Long H3)Parameter
Parameter | Deskripsi |
H3Cells | Array encoding grid H3. |
H3 | Encoding grid H3 tertentu. |
Contoh
Contoh 1: Periksa apakah grid dalam array H3Cells valid mengandung grid H3 tertentu.
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 yang dikembalikan:
+-------------+ | isContained | +-------------+ | true | +-------------+Hasil
truemenunjukkan adanya relasi inklusi.Contoh 2: Periksa apakah grid dalam array H3Cells valid mengandung grid H3 tertentu.
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 yang dikembalikan:
+-------------+ | isContained | +-------------+ | false | +-------------+Hasil
falsemenunjukkan tidak adanya relasi inklusi.Contoh 3: Encoding grid H3 input tidak valid atau NULL. Fungsi ini mengembalikan
false.-- Kode grid H3 input 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; -- Kode grid H3 input 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 yang dikembalikan:
+-------------+ | isContained | +-------------+ | false | +-------------+
Operasi grid
H3_CellToParent
Menerima encoding grid H3 dan level tertentu sebagai input, lalu mengembalikan encoding grid induk pada level tersebut.
Jika encoding grid input tidak valid, atau level input merupakan level anak dari level encoding saat ini, fungsi ini mengembalikan -1 atau string kosong. Jika level yang ditentukan sama dengan level grid saat ini, grid itu sendiri dikembalikan.
Dalam grid H3, angka level yang lebih besar menunjukkan level yang lebih rendah. Misalnya, level 5 adalah anak dari level 0. Anda dapat menggunakan fungsi H3_GetResolution untuk mengetahui level grid. Untuk informasi lebih lanjut, lihat H3_GetResolution.
Sintaks
Long H3_CellToParent(Long H3Cell, Int resolution)Parameter
Parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah LONG. |
resolution | Level grid yang ditentukan. Nilainya harus berada dalam rentang (0, level encoding grid yang ditentukan]. Misalnya, jika level H3Cell adalah 5, nilai resolution harus berada dalam rentang (0, 5]. |
Contoh
Contoh 1: Input encoding grid H3 bertipe LONG untuk mengembalikan encoding grid induk pada level 0.
SELECT H3_CellToParent(599686042433355775, 0) AS parent;Hasil yang dikembalikan:
+--------------------+ | parent | +--------------------+ | 577199624117288959 | +--------------------+Contoh 2: Mengembalikan kode grid dari semua grid induk pada level 5 untuk kode grid H3 tertentu bertipe STRING.
SELECT H3_CellToParent(599686042433355775, 5) AS parent;Hasil yang dikembalikan:
+--------------------+ | parent | +--------------------+ | 599686042433355775 | +--------------------+Contoh 3: Encoding grid tidak valid atau NULL, atau level input merupakan level anak dari level encoding saat ini atau NULL. Fungsi ini mengembalikan
-1.-- Kode grid input tidak valid SELECT H3_CellToParent(123, 5) AS parent; -- Resolusi input merupakan level anak dari kode saat ini SELECT H3_CellToParent(599686042433355775, 9) AS parent; -- Resolusi input NULL SELECT H3_CellToParent(599686042433355775, NULL) AS parent; -- Kode grid dan resolusi keduanya NULL SELECT H3_CellToParent(NULL, NULL) AS parent;Hasil yang dikembalikan:
+--------+ | parent | +--------+ | -1 | +--------+
H3_CellToChildren
Mengembalikan array semua encoding grid anak untuk grid H3 pada level tertentu.
Jika encoding grid input tidak valid, atau level input merupakan level induk atau sama dengan level encoding saat ini, fungsi ini mengembalikan array kosong.
Dalam grid H3, angka level yang lebih besar menunjukkan level yang lebih rendah. Misalnya, level 5 adalah anak dari level 0. Anda dapat menggunakan fungsi H3_GetResolution untuk mengetahui level grid. Untuk informasi lebih lanjut, lihat H3_GetResolution.
Sintaks
Set<Long> H3_CellToChildren(Long H3Cell, Int resolution)
Set<String> H3_CellToChildren(string H3Cell, Int resolution)Parameter
Parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah LONG atau STRING. |
resolution | Level grid yang ditentukan. Nilainya harus berada dalam rentang (level encoding grid yang ditentukan, 15]. Misalnya, jika level H3Cell adalah 5, nilai resolution harus berada dalam rentang (5, 15]. |
Contoh
Contoh 1: Input encoding grid H3 bertipe LONG dan tentukan level grid 6. Fungsi ini mengembalikan encoding semua grid anak pada level tersebut.
SELECT H3_CellToChildren(599686042433355775, 6) AS children;Hasil yang dikembalikan:
+--------------------------------+ | children | +--------------------------------+ | [604189641121202175, | | 604189641255419903, | | 604189641389637631, | | 604189641523855359, | | 604189641658073087, | | 604189641792290815, | | 604189641926508543] | +--------------------------------+Contoh 2: Diberikan encoding grid H3 bertipe STRING dan level grid yang ditentukan 6, fungsi ini mengembalikan encoding semua grid anak pada level tersebut.
SELECT H3_CellToChildren('85283473fffffff', 6) AS children;Hasil:
+--------------------------------+ | children | +--------------------------------+ | [86283470fffffff, | | 862834727ffffff, | | 862834737ffffff, | | 862834707ffffff, | | 862834717ffffff, | | 86283471fffffff, | | 86283472fffffff] | +--------------------------------+Contoh 3: Encoding grid tidak valid, atau level yang ditentukan merupakan level induk atau sama dengan level encoding saat ini. Fungsi ini mengembalikan array kosong.
-- Kode grid input tidak valid SELECT H3_CellToChildren(0,15) AS children; -- Resolusi yang diberikan merupakan level induk dari kode saat ini SELECT H3_CellToChildren('85283473fffffff', 3) AS children; -- Resolusi yang diberikan sama dengan resolusi kode saat ini SELECT H3_CellToChildren('85283473fffffff', 5) AS children;Hasil yang dikembalikan:
+----------+ | children | +----------+ | [] | +----------+
Kueri grid
H3_GridPathCells
Mengambil jalur grid H3 antara dua grid H3 tertentu. Jalur tersebut mencakup grid H3 awal dan akhir. Jika encoding grid H3 input tidak valid, fungsi ini mengembalikan array kosong. Jika kedua encoding input memiliki resolusi berbeda, fungsi ini mengembalikan null.
Sintaks
Set<Long> H3_GridPathCells(Long startCell, Long endCell)
Set<String> H3_GridPathCells(String startCell, String endCell)Parameter
Parameter | Deskripsi |
startCell | Encoding grid H3 awal. Tipe datanya adalah LONG atau STRING. Catatan Tipe startCell harus sama dengan tipe endCell. |
endCell | Encoding grid H3 akhir. Tipe datanya adalah LONG atau STRING. Catatan Tipe endCell harus sama dengan tipe startCell. |
Contoh
Contoh 1: Input dua encoding grid H3 untuk mengembalikan jalur antara kedua grid tersebut.
SELECT H3_GridPathCells(H3(123.1, 25.1, 8),H3(123.2, 25.2, 8)) AS pathCell;Hasil yang dikembalikan:
+--------------------------------+ | pathCell | +--------------------------------+ | [613820806174081023, | | 613820806136332287, | | 613820806132137983, | | 613820806325075967, | | 613820789795323903, | | 613820789791129599, | | 613820789942124543, | | 613820806163595263, | | 613820806327173119, | | 613820806314590207, | | 613820789986164735, | | 613820789981970431, | | 613820789944221695, | | 613820789940027391, | | 613820789969387519, | | 613820789965193215, | | 613820789709340671, | | 613820789705146367] | +--------------------------------+Contoh 2: Salah satu encoding grid H3 input tidak valid. Fungsi ini mengembalikan array kosong.
SELECT H3_GridPathCells(587769229395099647, 123) as pathCell;Hasil yang dikembalikan:
+----------+ | pathCell | +----------+ | [] | +----------+Contoh 3: Kedua encoding grid input memiliki level berbeda. Fungsi ini mengembalikan
null.-- Resolusi kedua grid berbeda: 587769229395099647 memiliki resolusi 2, 599686042433355775 memiliki resolusi 5 SELECT H3_GridPathCells(587769229395099647, 599686042433355775) as pathCell;Hasil yang dikembalikan:
+----------+ | pathCell | +----------+ | [] | +----------+
H3_GridDisk
Menerima encoding grid H3 tertentu dan jarak grid k sebagai input, lalu mengembalikan array semua encoding grid H3 pada level yang sama yang berada dalam atau pada jarak k dari grid yang ditentukan. Misalnya, jika grid input adalah A dan Anda menetapkan k=1, fungsi ini mengembalikan grid A dan cincin grid yang mengelilinginya. Jika Anda menetapkan k=2, fungsi ini mengembalikan grid A dan dua cincin grid yang mengelilinginya.
Jika encoding grid H3 input NULL atau tidak valid, fungsi ini mengembalikan array kosong. Jika jarak grid input k adalah 0, grid itu sendiri dikembalikan.
Sintaks
Set<Long> H3_GridDisk(Long H3Cell, Int k)
Set<String> H3_GridDisk(String H3Cell, Int k)Parameter
Nama parameter | Deskripsi |
H3Cell | Encoding grid H3. Tipe datanya adalah LONG atau STRING. |
k | Jarak grid. |
Contoh
Contoh 1: Mengembalikan semua encoding grid yang berada dalam atau pada jarak 1 dari grid pusat.
SELECT H3_GridDisk(599686042433355775, 1) AS grid;Hasil yang dikembalikan:
+--------------------------------+ | grid | +--------------------------------+ | [599686015589810175, | | 599686014516068351, | | 599686038138388479, | | 599686042433355775, | | 599686044580839423, | | 599686043507097599, | | 599686030622195711] | +--------------------------------+Contoh 2: Tentukan jarak 0 untuk mengembalikan grid itu sendiri.
SELECT H3_GridDisk(599686042433355775, 0) AS grid;Hasil yang dikembalikan:
+----------------------+ | grid | +----------------------+ | [599686042433355775] | +----------------------+Contoh 3: Grid H3 input NULL atau tidak valid. Fungsi ini mengembalikan array kosong.
-- Kode grid H3 input NULL SELECT H3_GridDisk(NULL, 0) AS grid; -- Kode grid H3 input tidak valid SELECT H3_GridDisk(123456, 0) AS grid;Hasil yang dikembalikan:
+------+ | grid | +------+ | [] | +------+
Perhitungan jarak
H3_Distance
Mengembalikan jarak Euclidean antara pusat dua grid H3 tertentu pada bidang 2D. Jika encoding grid H3 input NULL atau tidak valid, atau kedua grid memiliki level berbeda, fungsi ini mengembalikan -1.
Sintaks
BigDecimal H3_Distance(Long startCell, Long endCell)
BigDecimal H3_Distance(String startCell, String endCell)Parameter
Nama Parameter | Deskripsi |
startCell | Encoding grid H3 awal. Tipe datanya adalah LONG atau STRING. Catatan Tipe startCell dan endCell harus sama. |
endCell | Encoding grid H3 akhir. Tipe datanya adalah LONG atau STRING. Catatan Tipe endCell dan startCell harus sama. |
Contoh
Contoh 1: Input dua encoding grid H3 bertipe LONG untuk mengembalikan jarak Euclidean antara pusat grid pada bidang 2D.
SELECT H3_distance(587769229395099647, 587026509290536959) as distance;Hasil yang dikembalikan:
+-------------------+ | distance | +-------------------+ | 4.489061432072522 | +-------------------+Contoh 2: Input dua encoding grid H3 bertipe STRING untuk mengembalikan jarak Euclidean antara pusat grid pada bidang 2D.
SELECT H3_distance('825897fffffffff','8282cffffffffff') as distance;Hasil yang dikembalikan:
+-------------------+ | distance | +-------------------+ | 4.489061432072522 | +-------------------+Contoh 3: Salah satu encoding grid H3 input NULL atau tidak valid, atau kedua grid memiliki level berbeda. Fungsi ini mengembalikan
-1.-- Kode grid H3 input tidak valid SELECT H3_distance(587769229395099647, 345) AS distance; -- Kode grid H3 input NULL SELECT H3_distance(587769229395099647, NULL) AS distance; -- Resolusi kedua grid H3 berbeda: 587769229395099647 memiliki resolusi 2, 599686042433355775 memiliki resolusi 5 SELECT H3_distance(587769229395099647, 599686042433355775) AS distance;Hasil yang dikembalikan:
+----------+ | distance | +----------+ | -1 | +----------+
H3_DistanceSphere
Mengembalikan jarak bola dalam satuan meter (m) antara pusat dua grid H3 tertentu dalam sistem koordinat WGS84. Jika encoding grid H3 input NULL atau tidak valid, atau kedua grid memiliki level berbeda, fungsi ini mengembalikan -1.
Sintaks
BigDecimal H3_DistanceSphere(Long startCell, Long endCell)
BigDecimal H3_DistanceSphere(String startCell, String endCell)Parameter
Nama parameter | Deskripsi |
startCell | Encoding grid H3 awal. Tipe datanya adalah LONG atau STRING. Catatan Tipe startCell dan endCell harus sama. |
endCell | Encoding grid H3 akhir. Tipe datanya adalah LONG atau STRING. Catatan Tipe endCell dan startCell harus sama. |
Contoh
Contoh 1: Input dua encoding grid H3 bertipe LONG untuk mengembalikan jarak bola antara pusat grid dalam sistem koordinat WGS84.
SELECT H3_DistanceSphere(587769229395099647, 587026509290536959) as distance;Hasil yang dikembalikan:
+--------------------+ | distance | +--------------------+ | 497180.06581361144 | +--------------------+Contoh 2: Input dua encoding grid H3 bertipe STRING untuk mengembalikan jarak bola antara pusat grid dalam sistem koordinat WGS84.
SELECT H3_DistanceSphere('825897fffffffff','8282cffffffffff') as distance;Hasil yang dikembalikan:
+--------------------+ | distance | +--------------------+ | 497180.06581361144 | +--------------------+Contoh 3: Salah satu encoding grid H3 input NULL atau tidak valid, atau kedua grid memiliki level berbeda. Fungsi ini mengembalikan
-1.-- Kode grid H3 input tidak valid SELECT H3_DistanceSphere(587769229395099647, 345) AS distance; -- Kode grid H3 input NULL SELECT H3_DistanceSphere(587769229395099647, NULL) AS distance; -- Resolusi kedua grid berbeda: 587769229395099647 memiliki resolusi 2, 599686042433355775 memiliki resolusi 5 SELECT H3_DistanceSphere(587769229395099647, 599686042433355775) AS distance;Hasil yang dikembalikan:
+----------+ | distance | +----------+ | -1 | +----------+