Utilize as funções H3 fornecidas pelo Lindorm GanosBase para analisar ou consultar dados espaciais de forma eficiente com base em grades H3. Essas funções auxiliam no processamento de índices H3, permitindo converter tipos de índice, consultar relações entre células, verificar a resolução das células e calcular distâncias entre elas. Este tópico descreve todas as funções H3 suportadas pelo Lindorm GanosBase.
Mecanismos e versões aplicáveis
As funções H3 descritas neste tópico aplicam-se exclusivamente ao LindormTable.
-
O suporte às funções H3 descritas neste tópico está disponível no LindormTable 2.6.5 e versões posteriores. Para obter mais informações sobre como visualizar ou atualizar a versão do LindormTable, consulte Notas de versão do LindormTable e Atualizar a versão secundária do mecanismo de uma instância Lindorm.
ImportanteCaso a versão do LindormTable da sua instância Lindorm seja anterior à 2.6.5 e não possa ser atualizada, entre em contato com o suporte técnico (ID do DingTalk: s0s3eg3).
Funções
A tabela a seguir apresenta as funções H3 suportadas pelo Lindorm GanosBase.
Categoria | Função | Descrição |
Importação e conversão de dados | Converte um par de latitude/longitude ou um ponto de coordenadas em um índice H3 na resolução especificada. | |
Converte o tipo de dados de um índice H3 de LONG para STRING. | ||
Converte o tipo de dados de um índice H3 de STRING para LONG. | ||
Retorna o array de índices H3 de um polígono na resolução especificada. | ||
Exportação de dados | Retorna o limite do polígono da célula H3 especificada. | |
Determinação de células | Verifica se o índice H3 de entrada é válido. | |
Retorna a resolução do índice H3 de entrada. | ||
Verifica se duas células H3 são espacialmente adjacentes. Retorna | ||
Verifica se as células indicadas pelo objeto H3Cells especificado contêm a célula H3 especificada. | ||
Operações com células H3 | Retorna o índice H3 da célula pai da célula H3 especificada na resolução indicada. | |
Retorna o índice H3 da célula filha da célula H3 especificada na resolução indicada. | ||
Consultas relacionadas a células H3 | Obtém o caminho entre duas células H3. | |
Retorna os índices H3 de todas as células cuja distância em relação à célula central seja menor que a distância k especificada. | ||
Cálculo de distância | Retorna a distância euclidiana 2D entre os pontos centrais de duas células H3 especificadas. | |
Retorna a distância esférica em WGS84 entre os pontos centrais de duas células H3 especificadas. |
Importação e conversão de dados
H3
Esta função converte um par de latitude/longitude ou um ponto de coordenadas em um índice H3 na resolução especificada.
Sintaxe
Long H3(Point p)
Long H3(Double lng, Double lat)
Long H3(Point p, Int resolution)
Long H3(Double lng, Double lat, Int resolution)
Parâmetros
|
Parâmetro |
Descrição |
|
p |
Um ponto de coordenadas do tipo de dados POINT. |
|
lng |
Um valor de longitude do tipo de dados DOUBLE. |
|
lat |
Um valor de latitude do tipo de dados DOUBLE. |
|
resolution |
A resolução do índice H3 do tipo de dados INT. Valores válidos: 0 a 15. Valor padrão: 15. |
Exemplos
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;
Os comandos de exemplo anteriores retornam o mesmo resultado:
+--------------------+
| H3Cell |
+--------------------+
| 645317832955184368 |
+--------------------+
H3_H3ToString
Esta função converte o tipo de dados de um índice H3 de LONG para STRING. Se o índice H3 de entrada for NULL ou inválido, uma string vazia será retornada.
Sintaxe
String H3_H3ToString(Long H3Cell)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados LONG. |
Exemplos
-
Exemplo 1: Conversão do tipo de dados de um índice H3 de LONG para STRING.
SELECT H3_H3ToString(599686042433355775) AS H3Address;Resultado retornado:
+-----------------+ | H3Address | +-----------------+ | 85283473fffffff | +-----------------+ -
Exemplo 2: Verificação da validade do índice H3 de entrada. Se o índice H3 de entrada for NULL ou inválido, uma string vazia será retornada.
-- Input an invalid H3 index. SELECT H3_H3ToString(0) AS H3Address; --Input the value NULL. SELECT H3_H3ToString(NULL) AS H3Address;Resultado retornado:
+-----------+ | H3Address | +-----------+ | | +-----------+
H3_StringToH3
Esta função converte o tipo de dados de um índice H3 de STRING para LONG. Se o índice H3 de entrada for uma string vazia ou inválido, o valor -1 será retornado.
Sintaxe
Long H3_StringToH3(string H3Cell)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados STRING. |
Exemplos
-
Exemplo 1: Conversão do tipo de dados de um índice H3 de STRING para LONG.
SELECT H3_StringToH3('85283473fffffff') AS H3Cell;Resultado retornado:
+--------------------+ | H3Cell | +--------------------+ | 599686042433355775 | +--------------------+ -
Exemplo 2: Verificação da validade do índice H3 de entrada. Se o índice H3 de entrada for uma string vazia ou inválido, o valor
-1será retornado.-- Input an invalid H3 index. SELECT H3_StringToH3('abc') AS H3Cell; -- Input an empty string. SELECT H3_StringToH3('') AS H3Cell;Resultado retornado:
+--------+ | H3Cell | +--------+ | -1 | +--------+
H3_PolygonToCells
Esta função retorna o array de índices H3 de um polígono na resolução especificada.
Sintaxe
Set<Long> H3_PolygonToCells(Polygon poly, Int resolution)
Parâmetros
|
Parâmetro |
Descrição |
|
poly |
Um objeto de polígono do tipo de dados POLYGON. |
|
resolution |
A resolução do índice H3. Valores válidos: 0 a 15. |
Exemplos
Insira um polígono válido e especifique a resolução do índice H3 como 9. O array de índices H3 que representa o polígono será retornado.
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;
Resultado retornado:
+--------------------------------+
| polyCells |
+--------------------------------+
| [617700171225497599, |
| 617700171167825919, |
| 617700171168874495, |
| 617700171167563775, |
| 617700171168612351, |
| 617700171168350207, |
| 617700171177525247, |
| 617700171188011007, |
| 617700171176476671] |
+--------------------------------+
-
Exemplo 1: Insira um objeto de polígono válido, especifique o nível de grade H3 como 9 e obtenha o array de codificação de grade correspondente ao objeto de polígono.
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;Resultado retornado:
+--------------------------------+ | polyCells | +--------------------------------+ | [617700171225497599, | | 617700171167825919, | | 617700171168874495, | | 617700171167563775, | | 617700171168612351, | | 617700171168350207, | | 617700171177525247, | | 617700171188011007, | | 617700171176476671] | +--------------------------------+ -
Exemplo 2: Se o objeto de polígono de entrada for inválido ou a entrada for nula, um array vazio será retornado.
-- 输入不合法的多边形对象 SELECT H3_PolygonToCells(ST_GeomFromText('POLYGON EMPTY'), 1) AS polyCells; -- 输入为空 SELECT H3_PolygonToCells(NULL, 1) AS polyCells;Resultado retornado:
+-----------+ | polyCells | +-----------+ | [] | +-----------+
Exportação de dados
H3_CellToBoundary
Esta função retorna o limite do polígono da célula H3 especificada. Se o índice H3 de entrada for uma string vazia, NULL ou inválido, um array vazio será retornado.
Sintaxe
Set<Point> H3_CellToBoundary(Long H3Cell)
Set<Point> H3_CellToBoundary(string H3Cell)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados LONG ou STRING. |
Exemplos
-
Exemplo 1: Obtenção do limite do polígono de uma célula H3 especificada por um índice H3 de entrada do tipo STRING.
SELECT H3_CellToBoundary('85283473fffffff') AS boundary;Resultado retornado:
+--------------------------------+ | 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)] | +--------------------------------+ -
Exemplo 2: Obtenção do limite do polígono de uma célula H3 especificada por um índice H3 de entrada do tipo LONG.
SELECT H3_CellToBoundary(599686042433355775) AS boundary;Resultado retornado:
+--------------------------------+ | 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)] | +--------------------------------+ -
Exemplo 3: Entrada de uma string vazia, NULL ou valor inválido como índice H3. Um array vazio é retornado.
-- Input an empty string. SELECT H3_CellToBoundary('') AS boundary; -- Input the value NULL. SELECT H3_CellToBoundary(NULL) AS boundary; -- Input an invalid H3 index. SELECT H3_CellToBoundary(0) AS boundary;Resultado retornado:
+----------+ | boundary | +----------+ | [] | +----------+
Determinação de células
H3_IsValidCell
Esta função verifica se o índice H3 de entrada é válido. Se o índice H3 de entrada for válido, true será retornado. Caso contrário, false será retornado. Se o índice H3 de entrada for uma string vazia ou NULL, false será retornado.
Sintaxe
boolean H3_IsValidCell(Long H3Cell)
boolean H3_IsValidCell(string H3Cell)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados LONG ou STRING. |
Exemplos
-
Exemplo 1: Verificação da validade do índice H3 de entrada. Os índices H3 nos comandos de exemplo a seguir são válidos:
-- Input an H3 index of the LONG data type. SELECT H3_IsValidCell(599686042433355775) AS isValid; -- Input an H3 index of the STRING data type. SELECT H3_IsValidCell('85283473fffffff') AS isValid;Resultado retornado:
+---------+ | isValid | +---------+ | true | +---------+ -
Exemplo 2: Verificação da validade do índice H3 de entrada. Os índices H3 nos comandos de exemplo a seguir são inválidos:
-- Input an H3 index of the LONG data type. SELECT H3_IsValidCell(12) AS isValid; -- Input an H3 index of the STRING data type. SELECT H3_IsValidCell('abc') AS isValid;Resultado retornado:
+---------+ | isValid | +---------+ | false | +---------+ -
Exemplo 3: Entrada de uma string vazia ou NULL como índice H3. O valor
falseé retornado.-- Input an empty string. SELECT H3_IsValidCell('') AS isValid; -- Input the value NULL. SELECT H3_IsValidCell(NULL) AS isValid;Resultado retornado:
+---------+ | isValid | +---------+ | false | +---------+
H3_GetResolution
Esta função retorna a resolução do índice H3 de entrada.
Sintaxe
Int H3_GetResolution(Long H3Cell)
Int H3_GetResolution(string H3Cell)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados LONG ou STRING. |
Exemplos
-
Exemplo 1: Retorno da resolução de um índice H3 de entrada do tipo LONG.
SELECT H3_GetResolution(599686042433355775) AS resolution;Resultado retornado:
+------------+ | resolution | +------------+ | 5 | +------------+ -
Exemplo 2: Retorno da resolução de um índice H3 de entrada do tipo STRING.
SELECT H3_GetResolution('85283473fffffff') AS resolution;Resultado retornado:
+------------+ | resolution | +------------+ | 5 | +------------+
H3_AreNeighborCells
Esta função verifica se duas células H3 são espacialmente adjacentes. Se as duas células forem adjacentes, true será retornado. Caso contrário, false será retornado. Se qualquer um dos índices H3 especificados for NULL ou inválido, ou se os índices H3 especificados tiverem resoluções diferentes, false será retornado.
Antes de usar a função H3_AreNeighborCells, utilize a função H3_GetResolution para consultar a resolução de um índice H3. Para obter mais informações sobre como usar a função H3_GetResolution, consulte H3_GetResolution.
Sintaxe
boolean H3_AreNeighborCells(Long H3Cell1, Long H3Cell2)
boolean H3_AreNeighborCells(string H3Cell1, string H3Cell2)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell1, H3Cell2 |
Os índices H3 do tipo de dados LONG ou STRING. |
Exemplos
-
Exemplo 1: Entrada de dois índices H3 do tipo LONG e verificação se as células H3 representadas pelos dois índices são espacialmente adjacentes.
SELECT H3_AreNeighborCells(605546022931791871, 605546023066009599) as isNeighbor;Resultado retornado:
+------------+ | isNeighbor | +------------+ | true | +------------+ -
Exemplo 2: Entrada de dois índices H3 do tipo STRING e verificação se as células H3 representadas pelos dois índices são espacialmente adjacentes.
SELECT H3_AreNeighborCells('86754e66fffffff','86754e64fffffff') as isNeighbor;Resultado retornado:
+------------+ | isNeighbor | +------------+ | true | +------------+ -
Exemplo 3: Entrada de dois índices H3 inválidos, um valor NULL ou dois índices H3 com resoluções diferentes. O valor
falseé retornado.-- Input two invalid H3 indexes. SELECT H3_AreNeighborCells(1234,5678) as isNeighbor; -- Set one of the input H3 indexes to NULL. SELECT H3_AreNeighborCells(1234,NULL) as isNeighbor; -- Input two H3 indexes at different resolutions. The H3 index '85283473fffffff' is at resolution 5, and the H3 index '87283082bffffff' is at resolution 7. SELECT H3_AreNeighborCells('85283473fffffff','87283082bffffff') as isNeighbor;Resultado retornado:
+------------+ | isNeighbor | +------------+ | false | +------------+
H3_Contains
Esta função verifica se as células indicadas pelo objeto H3Cells especificado contêm a célula H3 especificada.
Por exemplo, suponha que as células H3 indicadas pelo objeto H3Cells especificado contenham uma célula H3 chamada A, e outra célula H3 chamada B seja especificada para a função. Esta função retorna true quando uma das seguintes condições é atendida:
AeBsão idênticas.Bé uma célula filha deA.
Se o índice H3 de B for inválido ou NULL, false será retornado. Se o array de índices H3 do objeto H3Cells contiver índices H3 inválidos, esses índices serão ignorados e nenhum erro será relatado.
Sintaxe
boolean H3_Contains(Set<Long> H3Cells, Long H3)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cells |
O array de índices H3. |
|
H3 |
O índice H3. |
Exemplos
-
Exemplo 1: Verificação se a célula H3 especificada está contida nas células indicadas pelo objeto H3Cells válido.
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;Resultado retornado:
+-------------+ | isContained | +-------------+ | true | +-------------+O valor
trueé retornado, indicando que a célula H3 especificada está contida nas células indicadas pelo objeto H3Cells válido. -
Exemplo 2: Verificação se a célula H3 especificada está contida nas células indicadas pelo objeto H3Cells válido.
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;Resultado retornado:
+-------------+ | isContained | +-------------+ | false | +-------------+O valor
falseé retornado, indicando que a célula H3 especificada não está contida nas células indicadas pelo objeto H3Cells válido. -
Exemplo 3: Entrada de um índice H3 inválido ou NULL. O valor
falseé retornado.-- Input an H3 index whose value is 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; -- Input an invalid H3 index. 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;Resultado retornado:
+-------------+ | isContained | +-------------+ | false | +-------------+
Operações com células H3
H3_CellToParent
Esta função retorna o índice H3 da célula pai da célula H3 especificada na resolução indicada.
Se o índice H3 especificado for inválido ou se a resolução especificada for uma resolução filha da resolução atual do índice H3, o valor -1 ou uma string vazia será retornado. Se a resolução especificada for igual à resolução do índice H3 atual, o próprio índice H3 será retornado.
Um valor de resolução maior representa uma resolução de nível inferior. Por exemplo, a resolução 5 é uma resolução filha da resolução 0. Utilize a função H3_GetResolution para consultar a resolução de uma célula H3. Para obter mais informações, consulte H3_GetResolution.
Sintaxe
Long H3_CellToParent(Long H3Cell, Int resolution)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados LONG. |
|
resolution |
A resolução especificada. Valores válidos: (0, Resolução do valor H3Cell]. Por exemplo, se a resolução da célula H3 especificada por H3Cell for 5, o intervalo de valores do parâmetro resolution será (0, 5]. |
Exemplos
-
Exemplo 1: Entrada de um índice H3 do tipo LONG e retorno dos índices H3 de todas as células pai da célula especificada pelo índice H3 na resolução 0.
SELECT H3_CellToParent(599686042433355775, 0) AS parent;Resultado retornado:
+--------------------+ | parent | +--------------------+ | 577199624117288959 | +--------------------+ -
Exemplo 2: Entrada de um índice H3 do tipo STRING e retorno dos índices H3 de todas as células pai da célula especificada pelo índice H3 na resolução 5.
SELECT H3_CellToParent(599686042433355775, 5) AS parent;Resultado retornado:
+--------------------+ | parent | +--------------------+ | 599686042433355775 | +--------------------+ -
Exemplo 3: Entrada de um índice H3 inválido ou NULL, ou especificação de uma resolução NULL ou que seja resolução filha da resolução atual do índice H3. O valor
-1é retornado.-- Input an invalid H3 index. SELECT H3_CellToParent(123, 5) AS parent; -- Specify a resolution that is the child resolution of the current H3 index. SELECT H3_CellToParent(599686042433355775, 9) AS parent; -- Specify a resolution of NULL. SELECT H3_CellToParent(599686042433355775, NULL) AS parent; -- Input an H3 index of NULL and specify a resolution of NULL. SELECT H3_CellToParent(NULL, NULL) AS parent;Resultado retornado:
+--------+ | parent | +--------+ | -1 | +--------+
H3_CellToChildren
Esta função retorna o índice H3 da célula filha da célula H3 especificada na resolução indicada.
Se o índice H3 especificado for inválido ou se a resolução especificada for a resolução pai ou a resolução atual do índice H3, um array vazio será retornado.
Um valor de resolução maior representa uma resolução de nível inferior. Por exemplo, a resolução 5 é uma resolução filha da resolução 0. Utilize a função H3_GetResolution para consultar a resolução de uma célula H3. Para obter mais informações, consulte H3_GetResolution.
Sintaxe
Set<Long> H3_CellToChildren(Long H3Cell, Int resolution)
Set<String> H3_CellToChildren(string H3Cell, Int resolution)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados LONG ou STRING. |
|
resolution |
A resolução especificada. Valores válidos: (Resolução do índice H3 especificado, 15]. Por exemplo, se a resolução da célula H3 especificada por H3Cell for 5, o intervalo de valores do parâmetro resolution será (5, 15]. |
Exemplos
-
Exemplo 1: Entrada de um índice H3 do tipo LONG e retorno dos índices H3 de todas as células filhas da célula especificada pelo índice H3 na resolução 6.
SELECT H3_CellToChildren(599686042433355775, 6) AS children;Resultado retornado:
+--------------------------------+ | children | +--------------------------------+ | [604189641121202175, | | 604189641255419903, | | 604189641389637631, | | 604189641523855359, | | 604189641658073087, | | 604189641792290815, | | 604189641926508543] | +--------------------------------+ -
Exemplo 2: Entrada de um índice H3 do tipo STRING e retorno dos índices H3 de todas as células filhas da célula especificada pelo índice H3 na resolução 6.
SELECT H3_CellToChildren('85283473fffffff', 6) AS children;Resultado retornado:
+--------------------------------+ | children | +--------------------------------+ | [86283470fffffff, | | 862834727ffffff, | | 862834737ffffff, | | 862834707ffffff, | | 862834717ffffff, | | 86283471fffffff, | | 86283472fffffff] | +--------------------------------+ -
Exemplo 3: Entrada de um índice H3 inválido ou especificação de uma resolução que seja a resolução pai ou a resolução atual do índice H3. Um array vazio é retornado.
-- Input an invalid H3 index. SELECT H3_CellToChildren(0,15) AS children; -- Specify a resolution that is the parent resolution of the H3 index. SELECT H3_CellToChildren('85283473fffffff', 3) AS children; -- Specify a resolution that is the current resolution of the H3 index. SELECT H3_CellToChildren('85283473fffffff', 5) AS children;Resultado retornado:
+----------+ | children | +----------+ | [] | +----------+
Consultas relacionadas a células H3
H3_GridPathCells
Obtém o caminho de células H3 entre duas células H3, incluindo a célula inicial e a célula final. Se o índice H3 de entrada for inválido, um array vazio será retornado. Se as resoluções dos dois índices H3 especificados forem diferentes, o valor null será retornado.
Sintaxe
Set<Long> H3_GridPathCells(Long startCell, Long endCell)
Set<String> H3_GridPathCells(String startCell, String endCell)
Parâmetros
Parâmetro | Descrição |
startCell | O índice H3 da célula inicial. O tipo de dados deste parâmetro é LONG ou STRING. Nota Os tipos de dados de startCell e endCell devem ser iguais. |
endCell | O índice H3 da célula final. O tipo de dados deste parâmetro é LONG ou STRING. Nota Os tipos de dados de startCell e endCell devem ser iguais. |
Exemplos
-
Exemplo 1: Entrada de dois índices H3 e retorno do caminho entre as células indicadas pelos dois índices H3.
SELECT H3_GridPathCells(H3(123.1, 25.1, 8),H3(123.2, 25.2, 8)) AS pathCell;Resultado retornado:
+--------------------------------+ | pathCell | +--------------------------------+ | [613820806174081023, | | 613820806136332287, | | 613820806132137983, | | 613820806325075967, | | 613820789795323903, | | 613820789791129599, | | 613820789942124543, | | 613820806163595263, | | 613820806327173119, | | 613820806314590207, | | 613820789986164735, | | 613820789981970431, | | 613820789944221695, | | 613820789940027391, | | 613820789969387519, | | 613820789965193215, | | 613820789709340671, | | 613820789705146367] | +--------------------------------+ -
Exemplo 2: Entrada de um índice H3 inválido. Um array vazio é retornado.
SELECT H3_GridPathCells(587769229395099647, 123) as pathCell;Resultado retornado:
+----------+ | pathCell | +----------+ | [] | +----------+ -
Exemplo 3: Entrada de dois índices H3 com resoluções diferentes. O valor
nullé retornado.-- Input two H3 indexes at different resolutions. The H3 index '587769229395099647' is at resolution 2, and the H3 index '599686042433355775' is at resolution 5. SELECT H3_GridPathCells(587769229395099647, 599686042433355775) as pathCell;Resultado retornado:
+----------+ | pathCell | +----------+ | null | +----------+
H3_GridDisk
Esta função retorna os índices H3 de todas as células cuja distância em relação à célula central especificada seja igual ou menor que a distância k especificada na resolução indicada. Por exemplo, se você especificar uma célula central chamada A e definir k como 1, a célula A e todas as células cuja distância em relação a A seja 1 serão retornadas. Se você definir k como 2, a célula A e todas as células cuja distância em relação a A seja 2 serão retornadas.
Se o índice H3 de entrada for inválido ou NULL, um array vazio será retornado. Se k for definido como 0, a célula central especificada será retornada.
Sintaxe
Set<Long> H3_GridDisk(Long H3Cell, Int k)
Set<String> H3_GridDisk(String H3Cell, Int k)
Parâmetros
|
Parâmetro |
Descrição |
|
H3Cell |
Um índice H3 do tipo de dados LONG ou STRING. |
|
k |
A distância entre outras células e a célula central. |
Exemplos
-
Exemplo 1: Retorno dos índices H3 de todas as células cuja distância em relação à célula central seja igual ou menor que 1.
SELECT H3_GridDisk(599686042433355775, 1) AS grid;Resultado retornado:
+--------------------------------+ | grid | +--------------------------------+ | [599686015589810175, | | 599686014516068351, | | 599686038138388479, | | 599686042433355775, | | 599686044580839423, | | 599686043507097599, | | 599686030622195711] | +--------------------------------+ -
Exemplo 2: Retorno dos índices H3 de todas as células cuja distância em relação à célula central seja igual a 0. O índice H3 da célula central é retornado.
SELECT H3_GridDisk(599686042433355775, 0) AS grid;Resultado retornado:
+----------------------+ | grid | +----------------------+ | [599686042433355775] | +----------------------+ -
Exemplo 3: Entrada de um índice H3 inválido ou NULL. Um array vazio é retornado.
-- Input an H3 index whose value is NULL. SELECT H3_GridDisk(NULL, 0) AS grid; -- Input an invalid H3 index. SELECT H3_GridDisk(123456, 0) AS grid;Resultado retornado:
+------+ | grid | +------+ | [] | +------+
Cálculo de distância
H3_Distance
Esta função retorna a distância euclidiana 2D entre os pontos centrais de duas células H3 especificadas. Se um dos índices H3 especificados for inválido ou NULL, ou se os dois índices H3 especificados tiverem resoluções diferentes, o valor -1 será retornado.
Sintaxe
Double H3_Distance(Long startCell, Long endCell)
Double H3_Distance(String startCell, String endCell)
Parâmetros
Parâmetro | Descrição |
startCell | O índice H3 da célula inicial. O tipo de dados deste parâmetro é LONG ou STRING. Nota Os tipos de dados de startCell e endCell devem ser iguais. |
endCell | O índice H3 da célula final. O tipo de dados deste parâmetro é LONG ou STRING. Nota Os tipos de dados de startCell e endCell devem ser iguais. |
Exemplos
-
Exemplo 1: Entrada de dois índices H3 do tipo LONG e retorno da distância euclidiana 2D entre os pontos centrais de duas células H3 especificadas pelos índices H3.
SELECT H3_distance(587769229395099647, 587026509290536959) as distance;Resultado retornado:
+-------------------+ | distance | +-------------------+ | 4.489061432072522 | +-------------------+ -
Exemplo 2: Entrada de dois índices H3 do tipo STRING e retorno da distância euclidiana 2D entre os pontos centrais de duas células H3 especificadas pelos índices H3.
SELECT H3_distance('825897fffffffff','8282cffffffffff') as distance;Resultado retornado:
+-------------------+ | distance | +-------------------+ | 4.489061432072522 | +-------------------+ -
Exemplo 3: Entrada de um índice H3 inválido ou NULL, ou especificação de dois índices H3 com resoluções diferentes. O valor
-1é retornado.-- Input an invalid H3 index. SELECT H3_distance(587769229395099647, 345) AS distance; -- Input an H3 index whose value is NULL. SELECT H3_distance(587769229395099647, NULL) AS distance; -- Input two H3 indexes at different resolutions. The H3 index '587769229395099647' is at resolution 2, and the H3 index '599686042433355775' is at resolution 5. SELECT H3_distance(587769229395099647, 599686042433355775) AS distance;Resultado retornado:
+----------+ | distance | +----------+ | -1 | +----------+
H3_DistanceSphere
Esta função retorna a distância esférica em metros entre os pontos centrais de duas células H3 especificadas em WGS84. Se um dos índices H3 de entrada for inválido ou NULL, ou se as resoluções dos índices H3 especificados forem diferentes, o valor -1 será retornado.
Sintaxe
Double H3_DistanceSphere(Long startCell, Long endCell)
Double H3_DistanceSphere(String startCell, String endCell)
Parâmetros
Parâmetro | Descrição |
startCell | O índice H3 da célula inicial. O tipo de dados deste parâmetro é LONG ou STRING. Nota Os tipos de dados de startCell e endCell devem ser iguais. |
endCell | O índice H3 da célula final. O tipo de dados deste parâmetro é LONG ou STRING. Nota Os tipos de dados de startCell e endCell devem ser iguais. |
Exemplos
-
Exemplo 1: Entrada de dois índices H3 do tipo LONG e retorno da distância esférica em WGS84 entre os pontos centrais de duas células H3 especificadas pelos índices H3.
SELECT H3_DistanceSphere(587769229395099647, 587026509290536959) as distance;Resultado retornado:
+--------------------+ | distance | +--------------------+ | 497180.06581361144 | +--------------------+ -
Exemplo 2: Entrada de dois índices H3 do tipo STRING e retorno da distância esférica em WGS84 entre os pontos centrais de duas células H3 especificadas pelos índices H3.
SELECT H3_DistanceSphere('825897fffffffff','8282cffffffffff') as distance;Resultado retornado:
+--------------------+ | distance | +--------------------+ | 497180.06581361144 | +--------------------+ -
Exemplo 3: Entrada de um índice H3 inválido ou NULL, ou especificação de dois índices H3 com resoluções diferentes. O valor
-1é retornado.-- Input an invalid H3 index. SELECT H3_DistanceSphere(587769229395099647, 345) AS distance; -- Input an H3 index whose value is NULL. SELECT H3_DistanceSphere(587769229395099647, NULL) AS distance; -- Input two H3 indexes at different resolutions. The H3 index '587769229395099647' is at resolution 2, and the H3 index '599686042433355775' is at resolution 5. SELECT H3_DistanceSphere(587769229395099647, 599686042433355775) AS distance;Resultado retornado:
+----------+ | distance | +----------+ | -1 | +----------+