Zakładając, że topologia jest idealna, tworzymy pole „WKT” z wyrażeniem
geom_to_wkt( $geometry)
w warstwie punktowej możesz użyć wyrażenia:
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'))
w polu kalkulatora warstwy rury, tworząc ciąg tekstowy.
- atrybut (cecha, nazwa_atrybutu) Zwraca wartość określonego atrybutu z cechy, tutaj rok
uzyskanej cechy punktowej .
- get_feature (warstwa, atrybut, wartość) zwraca pierwszą cechę warstwy pasującą do podanej wartości atrybutu. Tutaj sprawdzamy, czy możemy znaleźć punkt o tych samych współrzędnych (w formacie WKT), jak
te na początku i na końcu linii twojej linii.
- punkt_początkowy (geometria) zwraca pierwszy węzeł z geometrii. Tutaj pierwszy wierzchołek twojej linii.
- end_point (geometria) zwraca ostatni węzeł z geometrii. Tutaj ostatni wierzchołek twojej linii.
- geom_to_wkt (geometria) zwraca reprezentację geometrii w dobrze znanym tekście (WKT).
Możesz nawet zaktualizować go do:
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
aby pokazać tylko jeden rok, jeśli połączone są dwa punkty z tym samym rokiem (uzyskanie 200X zamiast 200X-200X).
Główną zaletą tej metody jest to, że jeśli dane zmienią się w punktach, możesz je bardzo szybko zaktualizować za pomocą tylko jednego kalkulatora pola.
Możesz nawet dodać tę regułę jako Autofield do tworzenia nowych linii.
Twoje zdrowie,