I have shopping mall data with shops and doors. I am trying to run 'join attributes by location' in order to match the shop names with the door. Some doors are located just within the shop polygon while some are just outside. The 'join attributes by location' function doesn't work with the doors located outside the polygons. Is there a way to snap all the doors to the edge of the nearest polygon in order to run the join attributes by location function?

Yellow lines are the doors outside the shop polygon.

enter image description here

Close up of door outside of polygon

enter image description here

1 Answer 1


One possible way to do that is to do the following:

  • Create a buffer around the door lines with a suitable buffer size that can be located within each corresponding shop. I see the doors have almost the same length, so you can use buffer with same size for all.
  • Use Join Attribute by location between the buffer created in the previous step and the green polygon.
  • Finally, use again Join Attribute by location between the door lines and the output of the joined buffer created in previous step. In this step the shop information will be transferred to the door lines.
  • That's pretty much what I ended up doing. I first created center points then added the attributes in the way you describe. Interesting that there isn't a solution for moving the lines.
    – brink
    Dec 6, 2017 at 17:29
  • @brink As you can see the doors are situated in different angles, that is why moving them automatically at the same time is difficult. Since you need mostly the information of the nearest polygon to be added to each corresponding door, I think the way I described can solve the problem.
    – ahmadhanb
    Dec 7, 2017 at 3:09

Your Answer

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

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