http://www.perlmonks.org?node_id=182884


in reply to Sorting by geographical proximity / clumping groups of items based on X and Y

One off-the-cuff idea: treat this as an image-processing problem.

  1. Segment your world into a grid of "pixels", with the intensity of each pixel being the number of problems reported there.
  2. Blur the "image" a bit, to group complaints that are relatively close, but not in adjacent pixels. How much you blur is probably a matter of experimentation.
  3. Run an edge detection algorithm over the image. You now have borders defining clumps of complaints.

The major problem that I can see is that you might get several closely-spaced groups blurring into each other, creating a single super-large group.

Update: "Segment the world, find local maxima, then calculate the voronoi diagram of the point set described by the maxima" might work, too.

--
The hell with paco, vote for Erudil!
:wq