geo_polygon_to_h3cells()
Converte polígono em células H3. Essa função é uma ferramenta útil de junção e visualização geoespaciais.
Syntax
geo_polygon_to_h3cells(
polígono [,
resolution[,
radius]])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
Polígono | dynamic |
✔️ | Polígono ou multipolígono no formato GeoJSON. |
Resolução | int |
Define a resolução de célula solicitada. Os valores com suporte estão no intervalo [0, 15]. Se não for especificado, o valor padrão 6 será usado. |
|
Raio | real |
Raio de buffer em metros. Se não for especificado, o valor padrão 0 será usado. |
Retornos
Matriz de cadeias de caracteres de token de célula H3 da mesma resolução que represetam um polígono ou um multipolígono. Se radius for definido como um valor positivo, o polígono será ampliado de modo que todos os pontos dentro do raio especificado do polígono de entrada ou multipolipgono serão contidos dentro e o polígono recém-calculado que será convertido em células H3. Se polígono, resolução, raio forem inválidos ou a contagem de células exceder o limite, a consulta produzirá um resultado nulo.
Observação
- Converter polígono em tokens de célula H3 pode ser útil em coordenadas correspondentes a polígonos que podem incluir essas coordenadas e polígonos correspondentes a polígonos.
- A contagem máxima de tokens por polígono é 61680.
- Bordas de polígono são linhas retas.
- Um polígono é representado pelas células cujos centroides 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 polígonos vizinhos que se tocam terão 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 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","86390cb17ffff","86390cb1fffffff","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
Multipolygon |
---|
{"type": "MultiPolygon", "coordenadas": [ ... ]} |
O exemplo a seguir retorna 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 |
---|
True |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de