I have a database with buildings and for some further analysis I need to:

  1. aggregate adjacent buildings (preferably without losing the height attribute, but I can work my way around that)
  2. once I have them aggregated, I need to create 'allotment' polygons so basically the Thiessen Polygons based on them - so that they do not intersect an any point aggregated buildings.

I tried to create centroid out of those aggregated buildings and then creating Thiessen Polygons but I failed - they intersect the buildings. Any idea how to handle it?

what I accomplished

Update after fisrt comment enter image description here

  • 2
    Using what software? ArcGIS, QGIS, Postgis, the list goes on...... May 18 '16 at 12:21
  • Arcgis, Qgis, Postgis work just fine. I tried this approach gis.stackexchange.com/questions/166143/… in Qgis and almost got it right. First I densified nods, then created voronoi polygons out of it, then spatial joined it and merged but still, there are some persistent problematic areas which overlap two polygon buildings....
    – marziorro
    May 18 '16 at 12:46
  • It would be best if you edited the question with the relevant tags so that people with experience in the appropriate question can help you. A lot of people filter by tag. May 18 '16 at 13:02

ArcGIS has a tool in the Spatial Analyst toolbar called Euclidean Allocation that will accomplish this task. Here is a link to the tool description.


Here is a QGIS post/solution if you do not have the Spatial Analyst license.

Open Source counterpart to Euclidean Allocation

Another solution might be to export all the polygons vertices to points including the attributes with the export. Then generate the Voronoi polygons, then dissolve the polygons based on the original polygon object IDs.


If I understand you correctly, it's just in the environment of QGIS that:

1) The building Polygons to points;

2) Vector Treatment of the geometry-the Voronoi Polygon;

3) Polygon in line;

4) Blast them and leave only the dividing lines...

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.