Shape1 is the base of all. Shape3 is based on Shape1, they have the same Polyline and id, but different attributes.

Now Shape1 is updated to Shape2. Example: Originally line segment A becomes line segment B, C, and D. One Feature becomes 3 Features, and the IDs of these three Features are different. The only association is that the Polyline merge of B, C, and D will be the Polyline of A.

I want to change the line segment A'(Polyline same as Shape1) of Shape3 into B',C', and D'(Polyline same as Shape2). (BCD) and (B'C'D') have corresponding Polyline and id, but have the same attributes as the original line segment A' (Shape3).

There are multiple such line segments that need to be handled automatically. Any plugin or PyQGIS suggestions?

enter image description here enter image description here

  • 1
    Are you asking how to use join attributes by location?
    – Erik
    Commented May 2, 2023 at 12:03
  • Or using Field Calculator with overlay_nearest
    – Babel
    Commented May 2, 2023 at 12:25
  • Please add some details as the question is not completely clear: What's the relation between shape 1 and 3? What role does shape 1 play or your question? You simply want to divide shape 3 in three parts, preserving the attributes. How do you divide the line into sub-linestrings?
    – Babel
    Commented May 2, 2023 at 13:07

1 Answer 1


Thanks to Erik and Babel.

Yes, "join attributes by location" can solve my problem "within" can associate A' with B,C,D. This is enough for me to build B',C',D'.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.