Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I'm trying to convert sets of points to their respective polygon boundaries. I think this is something like a Voronoi diagram or Convex Hull, but not quite. I'm sure there's a technical term for it, but I'm a beginner to GIS.

It's probably best illustrated with the following image:

enter image description here

So, given 4 sets of points (each set in its own colour), what are the four polygons surrounding each respective set of points such that the spacing between polygons maximizes the margins and all the polygons meet together?

Here's a simplified example with 3 points:

  • A,43.656943,-79.393928,blue
  • B,43.66663,-79.402682,green
  • C,43.656447,-79.408004,green

You'll have to view the following graphic for it to make sense: enter image description here

Essentially, each point has a colour and you expand a buffer of a certain distance out from it to start.

The hard part is when there's a collision with other points (their boundaries) and where to compute that boundary. The result is a set of polygons (one for each colour/set).

Thanks!

share|improve this question
1  
Can you post some sample data? That way we could test solutions :) –  R.K. Nov 3 '12 at 1:58
    
I added an example above. I hope that helps. –  DFx Nov 3 '12 at 2:30
    
possible duplicate of Thiessen polygons in QGIS –  blah238 Nov 3 '12 at 3:46
1  
Okay I think what I have to do, is take all points of all colours and perform Voronoi on them. After that, merge the resulting polygons together which have the same colours. At the end I should have my set of polygons (one for each colour). I'm not sure how to do that exactly in QGIS though... –  DFx Nov 3 '12 at 4:15
1  
What precisely do you mean by "spacing maximizes the margins"? The answer to that determines the solution. –  whuber Nov 4 '12 at 20:51

2 Answers 2

up vote 7 down vote accepted

From your point layer

enter image description here

you can create Voronoi plogyons

enter image description here

Which would result in this

enter image description here

Then create a mask from Delauney triangulation process

enter image description here

enter image description here

And then clip the Voronoi polygons layer with it.

enter image description here

Would that be good enough?

You can also try combining your Delauney triangulation mask with a buffer of your point layer

enter image description here

and use that to clip your Voronoi polygons instead

enter image description here

share|improve this answer
4  
You could also just run a DISSOLVE (from the Vector->Geoprocessing menu) on your Delauney or Voronoi polygons to give you the merged polygons you are trying to represent. –  RyanDalton Nov 3 '12 at 5:01
    
+1 - beat me to it ... nice thinking on the merged buffer, and with the @RyanDalton's dissolve suggestion this should answer the original question! –  Simbamangu Nov 3 '12 at 5:27
    
This is awesome - thanks R.K.! –  DFx Nov 3 '12 at 13:10

Voronoi polygons with a dissolve will give you the first part. Starting with your points, each set should have its own unique identifier ('col' in this example). Three col values with a set of points: enter image description here

Vector|Geometry tools|Voronoi Polygons with a 20% buffer gives you the 'boundary between points': enter image description here

Using 'col' as the dissolve variable with Vector|Geoprocessing tools|Dissolve gives you merged polygons around each set of points: enter image description here

Vector|Geoprocessing tools|Convex hulls can give you a convex boundary around your points, which you can use to clip the dissolved boundaries: enter image description here enter image description here

However, from your first example you seem would need to clip with a concave hull (plus some buffer distance?); concave hull is a function I've been unable to find; PostGIS does have the function.

share|improve this answer
    
Awesome - thanks this is a great answer. I'm just giving it to R.K. because of the more in depth instructions, but I really appreciate it! –  DFx Nov 3 '12 at 13:10
    
@DFx - no worries, would be curious to see what method you end up with finally (perhaps edit your original question with the full solution sometime). –  Simbamangu Nov 3 '12 at 13:47
    
@Simbamangu i can understand your answer but i have a small doubt in this.When i try to convert the polygons based on color it is converting but only as a single color polygon .what is the mistake with this? –  Arun Aug 14 '13 at 7:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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