Suponiendo que la topología es perfecta, crea un campo 'WKT' con la expresión
geom_to_wkt( $geometry)
en su capa de puntos, podría usar la expresión:
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'))
en la calculadora de campo de la capa de tubería, creando una cadena de texto.
- atributo (característica, nombre_atributo) Devuelve el valor de un atributo especificado de una característica, aquí, el año de la característica de punto
obtenida.
- get_feature (capa, atributo, valor) devuelve la primera característica de una capa que coincide con un valor de atributo dado. Aquí verificamos si podemos encontrar un punto con las mismas coordenadas (en formato WKT) que las de
los vértices inicial y final de su línea.
- start_point (geometry) devuelve el primer nodo de una geometría. Aquí el primer vértice de tu línea.
- end_point (geometry) devuelve el último nodo de una geometría. Aquí el último vértice de tu línea.
- geom_to_wkt (geometry) devuelve la representación de texto conocido (WKT) de la geometría.
Incluso podría actualizarlo a:
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 solo un año si se conectan dos puntos con el mismo año (obteniendo 200X en lugar de 200X-200X).
La principal ventaja de este método es que si sus datos cambian en sus puntos, puede actualizarlos muy rápido con solo una calculadora de campo.
Incluso podría agregar esta regla como un Autofield para cuando cree nuevas líneas.
Salud,