geo_polygon_to_h3cells()
Converte o polígono em células H3. Esta função é uma ferramenta de associação e visualização geoespacial útil.
Syntax
geo_polygon_to_h3cells(
polígono [,
resolução[,
raio]])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
polígono | dynamic |
✔️ | Polígono ou multipólgono no formato GeoJSON. |
resolução | int |
Define a resolução de células pedida. Os valores suportados estão no intervalo [0, 15]. Se não for especificado, é utilizado o valor 6 predefinido. |
|
raio | real |
Raio da memória intermédia em metros. Se não for especificado, é utilizado o valor 0 predefinido. |
Devoluções
Matriz de cadeias de tokens de célula H3 da mesma resolução que repõem um polígono ou um multipólgono. Se radius estiver definido como um valor positivo, o polígono será aumentado de modo a que todos os pontos dentro do raio especificado do polígono de entrada ou multipolygon sejam contidos no interior e o polígono recém-calculado que será convertido em células H3. Se polígono, resolução, raio for inválido ou a contagem de células exceder o limite, a consulta produzirá um resultado nulo.
Nota
- A conversão de tokens de células de polígonos em H3 pode ser útil para combinar coordenadas com polígonos que podem incluir estas coordenadas e polígonos correspondentes a polígonos.
- A contagem máxima de tokens por polígono é 61680.
- As margens do polígono são linhas retas.
- Um polígono é representado pelas células cujos centroides estão dentro do polígono. Isto significa que as células não são exatamente as mesmas que o polígono, mas aproximam-se à medida que a resolução aumenta. Para se certificar de que cada ponto no polígono está coberto por uma célula, o polígono pode ser colocado em memória intermédia. Isto também garante que os polígonos vizinhos que se tocam terão células separadas, pelo que nenhuma célula pertencerá a mais do que um polígono.
Seel também geo_polygon_to_s2cells().
Exemplos
O exemplo seguinte 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","86390cb07ffff","86390ca2fffffff","86390ca37ffffff","86390cb17ffffff","86390cb1fffffff","86390cb8fffffff","86390cba7ffffff","86390ca07ffffff","86390cbafffff"] |
O exemplo seguinte demonstra um multipolygon que consiste em células H3 que se aproximam do polígono acima. Especificar uma resolução mais alta irá 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
multipólgono |
---|
{"type": "MultiPolygon", "coordenadas": [ ... ]} |
O exemplo seguinte devolve nulo 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 |
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários