1

I'm a QGIS beginner. I have twenty layers of drive time polygons. There are multiple overlapping polygons between the layers. All attribute tables have identical field names. I can merge these multiple layers without issue, using any of the available tools in QGIS. I have not found a way to retain the minimum drive time for each merged polygon. All of the tools seem to sum by default. Although I have not yet had success rasterizing these layers, my guess is that I can do these calculations with rasters. However, I was hoping there might be a way to do this while keeping everything in vectors. Any ideas?

Example of overlapping polygons between layers:

Layer 1 - Drive time = 160s
Layer 2 - Drive time = 100s
Layer 3 = Drive time = 135s

I want the new merged polygon to have a value of 100s.

[EDIT]

The answer below worked for me but I needed to use the "contains" option, not "intersect" to get the exact results I wanted. Also, I got odd looking layers from my first experiments, with many polygons receiving no values. I traced this problem to invalid polygons, which I corrected with the v.clean function.

1

If you are dealing with features which are coincident when overlapping, you may use the Join attributes by location algorithm from Processing Toolbox.

Assuming that your merged layer is called Merged Layer, you may set these parameters:

enter image description here

The output layer will have an additional field which stores the minimum value found when there was the intersection of some features.

The above method could not be the best in some particular cases (e.g. when features are not coincident or when they have particular shapes and they are very close). In this case, maybe recurring to a simple Python code it's the best solution.

  • Thanks for your answer. It seems clear that this is the approach I need so I marked this as answered. However, I have not had any luck running the tool successfully. If I use "intersect" I get nonsensical results. If I use "equals", which makes sense to me considering the layers are identical, I end up with no results. If I try to run "equals" with a precision the processor never progresses (0% for over an hour). Any further pointers are appreciated! – biddrafter Mar 19 '17 at 20:00
  • @biddrafter hmm, that's weird. I'm quite sure you will have success using my approach. Could you upload your merged layer, or a sample of it? Otherwise, you should edit your question by adding what have you tried and by explaining clearly what do you mean with nonsensical results. – mgri Mar 19 '17 at 20:30
  • 1
    It is now working, following the guidelines in your original answer, with the slight modification of using the "contains" option instead of "intersect". I also had an issue with a couple of invalid polygons, which I cleaned. These led to the nonsensical results I mentioned. Rookie mistake on my part. – biddrafter Mar 20 '17 at 22:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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