Supondo que a topologia seja perfeita, crie um campo 'WKT' com a expressão
geom_to_wkt( $geometry)
na sua camada de pontos, você pode usar a expressão:
min( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))||'-'|| max( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))
na calculadora de campo da camada de tubulação, criando uma sequência de texto.
- attribute (feature, attribute_name) Retorna o valor de um atributo especificado de um recurso, aqui, o ano do recurso de ponto
obtido.
- get_feature (camada, atributo, valor) retorna o primeiro recurso de uma camada que corresponde a um determinado valor de atributo. Aqui, verificamos se conseguimos encontrar um ponto com as mesmas coordenadas (no formato WKT) que
as dos vértices inicial e final da sua linha.
- start_point (geometry) retorna o primeiro nó de uma geometria. Aqui o primeiro vértice da sua linha.
- end_point (geometry) retorna o último nó de uma geometria. Aqui o último vértice da sua linha.
- geom_to_wkt (geometry) retorna a representação de texto conhecido (WKT) da geometria.
Você pode até atualizá-lo para:
CASE
WHEN attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year') = attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year')
THEN attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year')
ELSE min( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))||'-'|| max( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))
END
para mostrar apenas um ano se dois pontos com o mesmo ano estiverem conectados (obtendo 200X em vez de 200X-200X).
A principal vantagem desse método é que, se seus dados forem alterados em seus pontos, você poderá atualizá-los muito rapidamente com apenas uma calculadora de campo.
Você pode até adicionar essa regra como um Autofield para quando criar novas linhas.
Felicidades,