3

I have a shapefile of polygons representing sectors of a city. I would like to identify "corners" where 3 or more of these polygons meet (that is, I don't want to identify the boundaries between two polygons).

corners to identify

In the figure above, I'd like to identify the red circles so that I can buffer and remove them from the layer before calculating transects. Does anyone have suggestions on how to do this so I can avoid doing it manually?

2 Answers 2

4

You can achieve this using a Virtual layer that identify the intersection point between 3 polygons of the same layer.

Go to the menu Layer > Add Layer > Add/Edit Virtual Layer... and enter the query.

select a.id, b.id, c.id, 
       st_intersection(st_intersection(a.geometry, b.geometry),c.geometry)
from city a
join city b 
  on st_intersects(a.geometry,b.geometry) 
    and a.id < b.id
join city c 
 on st_intersects(a.geometry,c.geometry) 
   and st_intersects(b.geometry,c.geometry) 
   and a.id < c.id 
   and b.id < c.id

enter image description here

0
2

There is a solution that can be produced with QGIS tools:

  1. Make use of the "Extract vertices"

  2. Proceed with the "Delete duplicate geometries"

  3. Apply the "Extract by expression" with the following expression:

    array_length(
        overlay_intersects(
            layer:='polygon', -- change this name accordingly
            expression:=1
            )
        ) > 2 -- adjust this number
    

And get the following result:

result


References:

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.