Todos os produtos
Search
Central de documentação

:Funções H3

Última atualização: Jun 28, 2026

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.

    Importante

    Caso 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

H3

Converte um par de latitude/longitude ou um ponto de coordenadas em um índice H3 na resolução especificada.

H3_H3ToString

Converte o tipo de dados de um índice H3 de LONG para STRING.

H3_StringToH3

Converte o tipo de dados de um índice H3 de STRING para LONG.

H3_PolygonToCells

Retorna o array de índices H3 de um polígono na resolução especificada.

Exportação de dados

H3_CellToBoundary

Retorna o limite do polígono da célula H3 especificada.

Determinação de células

H3_IsValidCell

Verifica se o índice H3 de entrada é válido.

H3_GetResolution

Retorna a resolução do índice H3 de entrada.

H3_AreNeighborCells

Verifica se duas células H3 são espacialmente adjacentes. Retorna true se forem adjacentes; caso contrário, retorna false.

H3_Contains

Verifica se as células indicadas pelo objeto H3Cells especificado contêm a célula H3 especificada.

Operações com células H3

H3_CellToParent

Retorna o índice H3 da célula pai da célula H3 especificada na resolução indicada.

H3_CellToChildren

Retorna o índice H3 da célula filha da célula H3 especificada na resolução indicada.

Consultas relacionadas a células H3

H3_GridPathCells

Obtém o caminho entre duas células H3.

H3_GridDisk

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

H3_Distance

Retorna a distância euclidiana 2D entre os pontos centrais de duas células H3 especificadas.

H3_DistanceSphere

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 -1 será 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.

Nota

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:

  • A e B são idênticas.

  • B é uma célula filha de A.

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.

Nota

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.

Nota

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       |
    +----------+