I am trying to make a map of administrative units in a state. I have a list of ~10 million addresses with a variable indicating which unit they fall into. My plan is to geocode the addresses using an Amazon EC2 instance or similar geocoding solution, map the points and then draw polygons around the sets of points.

Given my relative inexperience with GIS, I am wondering if there is a more sensible way to approach this problem. The addresses are quite clean, with zip codes attached (sometimes zip+4), and 99% or more of the addresses should be clustered together correctly in a single contiguous polygon. But I anticipate that after geocoding some addresses will fall outside the logical bounds of the polygon and need to be corrected post hoc. Each unit will have ~1200 addresses geocoded on average, with significant variance. My address list represents approximately 40% of all addresses within the units, so the points I will have to work with are quite dense.

Is this the only way to approach the problem? Note I am a grad student, so any solution needs to be cheap or free (my budget is under $300).

Edited to add: All addresses are in a single US state. I am working in ArcMap 10.4 and even figuring out how to use an API has been tough. My addresses are just in a .csv file and I eventually want a .shp file. I am a statistician, not a GIS professional, unfortunately.

  • 1
    I think you could use npmjs.com/package/tiger-geocoder, as it sounds like all your adddress are in the US, from the word zipcode. There is also a decent amount of Postgres/Postgis documentation about how to do this, eg, bostongis.com/blog/index.php?/archives/…, if you want to use a spatial DB to do it. 10 million isn't really that big, and if the data are clean, you could do this on a laptop quite easily without EC2 Commented Mar 4, 2017 at 20:40
  • You haven't really stated your prefered platform, programming language or db prefernces, which makes it hard to give a more coherent answer. Commented Mar 4, 2017 at 20:42
  • 2
    Do you need to use geocoding to produce these polygons? Adminstrative divisions already exist somewhere digitally, it would probably be easier to search for an open data portal or email some official responsible for maintaining administrative data and just asking for it. Your proposed method is prone to error, not to mention the fact that it will take a long time and probably cost you money to geocode all of those addresses. Commented Mar 4, 2017 at 21:11
  • @RichardLaw these are election precincts in states where the counties manage election boundaries. I am trying to avoid contacting all 60+ counties and getting wildly different formats. I am also skeptical that all of the counties will have digital maps, as a few of them insisted on sending me precinct-level election results on paper (80+ pages). Commented Mar 4, 2017 at 21:16
  • 2
    It is unlikely that you'll make sensible polygons out of points. Take highest resolution admin units and compare it to majority of points inside. Hopefully you'll have to deal with few units where majority is under 50 percent
    – FelixIP
    Commented Mar 4, 2017 at 21:48

1 Answer 1


You might find it easier to sacrifice accuracy and just use some kind of simple approach where you divide the area into a grid, and then assign each grid cell to its most common administrative unit. Then union same administrative unit grid cells afterwards. As others have pointed out, making polygons accurately will be hard.

You'll presumably have issues with grid cells needing to be smaller in cities than in rural areas (i.e. units cover smaller geographic areas in cities). You could get around this by using a spatial quadtree of some sort - i.e. start with a single quadtree node covering the entire area, and then recursively split such that no node contains more than 100 addresses or similar. You'd then end up with a more refined grid in cities.

You may need to use R or some programming language to do this instead of ArcMap.

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.