Você pode usar LineJoiner
transformador com parâmetro List Name
. Mas você precisa fazer algum processamento de dados adicional:
- Use
LengthCalculator
para calcular comprimentos.
- Use
Sorter
para classificar suas linhas por comprimento (classificação numérica, decrescente).
- Use
LineJoiner
para juntar linhas. Os maiores primeiro (graças ao passo 2). Especifique o parâmetro List Name
do LineJoiner
- algum nome para o novo atributo da lista.
- Use
ListIndexer
com o índice da lista 0 - para obter os primeiros atributos do recurso associado (o maior) 'da lista.
Aqui está como ficará:
EDIT1:
Para poder unir apenas <1m de recursos aos maiores, precisamos usar adicionalmente:
Tester
transformador após LengthCalculator com teste: _length < 1
- Use
SpatialFilter
(testes para executar o parâmetro TOUCHES
:) após o Testador para filtrar apenas os recursos que tocam em recursos <1m. Em seguida, execute a junção de linha neles juntamente com os recursos <1m. Recursos que não tocam em <1m, direto para a saída (ou processamento adicional).
Modelo:
EDIT2:
Se você tem <1m de linha que toca dois grandes, todos eles serão unidos. Se esse caso (o recurso <1m tocar dois ou mais grandes) for possível em seus dados, você deverá adicionar algum processamento desses casos. Veja os parâmetros Merge Attributes
e o Attribute Prefix
transformador SpatialFilter
. Usando esses parâmetros, você poderá detectar esses casos e, em seguida, fazer alguma filtragem adicional.
EDIT3:
Vamos resolver o caso quando você tiver duas linhas grandes tocando uma pequena (<1m). Precisamos usar apenas uma das grandes linhas para participar da junção com a pequena.
Para poder realizar essa filtragem, precisamos marcar esses dois grandes recursos com algum ID do pequeno que eles estão tocando. Conforme indicado no EDIT2, isso pode ser feito no SpatialFilter
transformador usando os parâmetros Merge Attributes
e Attribute Prefix
.
Em seguida, use o transformador DuplicateRemover
para filtrar esses recursos duplicados (dois grandes) e pegar apenas um deles.
Dica: tente usar o Inspector
transformador durante a criação do seu modelo e visualize resultados intermediários em qualquer caso que não esteja claro para você. Dessa forma, você entenderá melhor como cada um dos transformadores está funcionando. Experimente seus dados! :)