I have a Postgres database of entire U.S. zipcodes and their lat/long data.

My requirement is to divide these zipcodes into non overlapping regions.

All regions have some center zipcode. All regions grow outward, starting from it's center until they intersect with another region.

EDIT: I do not have information about the radii/sizes of the regions. All I have is a list of zipcodes that can be considered as centers of the regions.

Is this achievable using Postgis?

  • 4
    Delaunay/Voronoi Polygons? see image at gis.stackexchange.com/questions/114764/… – Mapperz May 8 '15 at 2:26
  • Assuming you can't get the boundaries from somewhere else. U.S. ZipCodes should be available as a polygon dataset for download. – Michael Stimson May 8 '15 at 3:21
  • Welcome to GIS SE. I don't understand your question. It's not clear how many types of regions there are, or the purpose of any new regions. Can you include a diagram? (BTW, editing is good, but you needn't markup your question with notes about the edit -- just edit it into a complete unit.) – Martin F May 8 '15 at 15:04
  • This sounds like an iterative selection/grow/merge. You start with your centers selected, then select everything that intersects/touches the boundary of them. Merge that to a new shape. Select everything that touches that and merge to a new shape. You'd have to implement some sort of logic that if it's already assigned a region it can't be considered. You're also likely to run into cases where on an iteration you have one zip that could go to two regions, and would have to create rules for that. The concept is discussed in comments on a couple of questions, which of course I can't find atm. – Chris W May 9 '15 at 0:29
  • Also don't have to merge, just set a region attribute. That can serve as your already included check as well - if that attribute is 0, set it to adjacent, else leave it alone. Grouping analysis with centers as seeds also comes to mind. Mapperz suggestion is promising too - use that on your centers to create the regions, then an overlay operation to pull that information to the zip boundaries. – Chris W May 9 '15 at 0:31