É um processo de várias etapas, portanto, você deve criar um modelo ou script personalizado. Para evitar lascas de polígonos que pertencem a pontos de polígono vizinhos, você precisará percorrer a camada de estados. Trabalhando com polígonos de estado e um conjunto de pontos aleatórios, analisarei o processo para que você possa entender o que está acontecendo dentro do nosso modelo.
Por dentro do modelo
- Extrair por local
- Extrair recursos de:
points_layer
- Onde os recursos:
intersect
- Comparando com os recursos de:
polygons_layer
- Polígonos de Voronoi
- Camada de entrada:
'Extracted (location)' from algorithm 'Extract by location'
- Região do buffer:
500
(parece excessivo, mas queremos garantir que seus polígonos Voronoi cubram completamente o estado em que estão. Como cortamos essa camada na próxima etapa, é irrelevante o tamanho que fazemos).
- Algoritmos principais:
Extract by location
- Grampo
- Camada de entrada:
'Voronoi polygons' from algorithm 'Voronoi polygons'
- Camada de sobreposição:
polygons_layer
- Recortado:
output
- Algoritmos pais:
Extract by location
eVoronoi polygons
Como você pode ver, temos nossos polígonos de Voronoi com restrição de estado nos quais pontos de estados vizinhos não afetam seu arranjo.
Aqui está uma imagem do modelo:
A imagem não transmite isso, mas observe que a entrada da camada de polígono do modelo é um Vector Features
objeto, não um Vector Layer
.
Executando o modelo
Quando você executa seu modelo, é vital que você clique no ícone para percorrer os recursos da camada Estados.
Depois de executar o modelo, você pode simplesmente executar a mesclagem de camadas vetoriais nas saídas para obter uma saída de camada única, se isso for importante para você. Infelizmente, não conheço uma maneira fácil de mesclar várias saídas de modelo no próprio modelo (por favor, alguém me corrija se houver algo).
Se você estiver familiarizado com o Python, poderá modificar facilmente o script exportado desse modelo para lidar com essa etapa adicional. Como você não mencionou soluções baseadas em código em sua pergunta, deixarei isso de fora.