Partilhar via


geo_polygon_to_h3cells()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Converte polígono em células H3. Essa função é uma ferramenta útil de junção e visualização geoespacial.

Sintaxe

geo_polygon_to_h3cells( polígono [ , resolução [, raio]])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
polígono dynamic ✔️ Polígono ou multipolígono no formato GeoJSON.
resolução int Define a resolução da célula solicitada. Os valores suportados estão no intervalo [0, 15]. Se não for especificado, o valor padrão 6 será usado.
raio real Raio do buffer em metros. Se não for especificado, o valor padrão 0 será usado.

Devoluções

Matriz de cadeias de caracteres de token de célula H3 da mesma resolução que redefinem um polígono ou um multipolígono. Se o raio for definido como um valor positivo, o polígono será ampliado de modo que todos os pontos dentro do raio fornecido do polígono ou multipolígono de entrada estejam contidos dentro e o polígono recém-calculado será convertido em células H3. Se polygon, resolution, radius for inválido ou a contagem de células exceder o limite, a consulta produzirá um resultado nulo.

Observação

  • A conversão de tokens de célula de polígono em H3 pode ser útil para corresponder coordenadas a polígonos que podem incluir essas coordenadas e combinar polígonos a polígonos.
  • A contagem máxima de tokens por polígono é 61680.
  • As arestas do polígono são linhas retas.
  • Um polígono é representado pelas células cujos centróides estão dentro do polígono. Isso significa que as células não são exatamente iguais ao polígono, mas se aproximam à medida que a resolução aumenta. Para garantir que cada ponto no polígono seja coberto por uma célula, o polígono pode ser armazenado em buffer. Isso também garante que os polígonos vizinhos que se tocam tenham células separadas, portanto, nenhuma célula pertencerá a mais de um polígono.

Seel também geo_polygon_to_s2cells().

Exemplos

O exemplo a seguir calcula as células H3 que se aproximam do polígono.

let polygon = dynamic({"type":"Polygon","coordinates":[[[-3.659,40.553],[-3.913,40.409],[-3.729,40.273],[-3.524,40.440],[-3.659,40.553]]]});
print h3_cells = geo_polygon_to_h3cells(polygon)

Saída

h3_cells
["86390cb57ffffff","86390cb0fffffff","86390ca27ffffff","86390cb87ffffff","86390cb07ffffff","86390ca2fffffff","86390ca37ffffff","86390cb17ffffff","86390cb8fffffff","86390cba7ffffff","86390ca07ffffff","86390cbafffffff"]

O exemplo a seguir demonstra um multipolígono que consiste em células H3 que se aproximam do polígono acima. Especificar uma resolução mais alta melhorará a aproximação do polígono.

let polygon = dynamic({"type":"Polygon","coordinates":[[[-3.659,40.553],[-3.913,40.409],[-3.729,40.273],[-3.524,40.440],[-3.659,40.553]]]});
print h3_cells = geo_polygon_to_h3cells(polygon)
| mv-expand cell = h3_cells to typeof(string) // extract cell to a separate row
| project polygon_cell = geo_h3cell_to_polygon(cell) // convert each cell to a polygon
| project individual_polygon_coordinates = pack_array(polygon_cell.coordinates)
| summarize multipolygon_coordinates = make_list(individual_polygon_coordinates)
| project multipolygon = bag_pack("type","MultiPolygon", "coordinates", multipolygon_coordinates)

Saída

multipolígono
{"tipo": "MultiPolygon",
"coordenadas": [ ... ]}

O exemplo a seguir retorna null porque o polígono é inválido.

let polygon = dynamic({"type":"Polygon","coordinates":[[[0,0],[1,1]]]});
print is_null = isnull(geo_polygon_to_h3cells(polygon))

Saída

is_null
Verdadeiro