This is to create a cellphone coverage map. I'm being given a list of zipcodes and need to create a detailed static cellphone map (plus, ideally, an interactive zoomable map) of cellphone coverage areas.

I'm totally new to GIS systems, or any mapping API other than Google Maps. Can you suggest how I would get started?

7 Answers 7


From what I've gathered you've got a list of zip codes and their respective coverage status.

Get the Shapefile

First off you will need to source something called a 'shapefile' which defines the boundaries of the zip codes that you have. A simple google search brings up the following page: http://www.census.gov/geo/www/cob/z52000.html (...assuming you're American)

Note that if your analysis spans multiple states, it would be more convenient to continue searching for a shapefile which spans the continental USA. Likewise, you could search for a more recent dataset, but my guess is that Zip boundaries don't change considerably enough to change your results.

Get the Software

Once you've got the shapefile, note a shapefile is actually many files (.shp, .dbf, .shx ...), you'll need an application to open it in. QuantumGIS (QGIS) is the most common FOSS alternative to the commercial packages. In addition, this site has tracklog of well answered questions given the handful of advanced users who frequent here. New users are reccomended to download the latest version here.


At this point, it's assumed you have the following:

  1. Shapefile of Zip Code Areas
  2. Table of Information about Zip Code Areas
  3. Spatial Application to Process 1 and 2

Given you've only obtained one spatial file, there's little point in getting into the details of Coordinate Systems, and Projections. You should be aware, however, that these things exist and are the root cause of many problems between multiple datasets.

What to Do?

What you need to do at this point is associate the two sources of data that you have. In spatial/database terms this is simply called a 'join'. The image below provides a working example of rainfall per county.

enter image description here

KEY POINT HERE: Ultimately you will want to join every record in your shapefile to every record in your coverage data. The link between the two files will be the zip code field in each data source.

Do The Work

Have a look at the following tutorial on joining data in QGIS which links data at a state level:


(I'm happy to fill in the gaps here if you have issues, but I don't want to reinvent the wheel considering the depth of your question)


Once you've created a join you need to give it context by applying symbology. I would imagine that 'good' coverage areas will be green, while 'bad' coverage areas would be 'red'.

Again, have a look at this tutorial for vector symbology in QGIS.


As requested, I believe I provided enough information above to get you started. Please have a look at the QGIS manual if you have further questions about symbology, output and printing. For anything else you're stuck on, gis.se is here for your questions.


If my information isn't enough for you to get going, by all means please comment. Otherwise, here are some other sources of general instruction for the software.

QGIS User Guide

Chapter 2 - Managing your data

Joining Data from an ESRI perspective

  • +1 Forgot about QGis. Also good call on where to get the data from, being from little ol' England this stuff is far less easily available! Aug 13, 2012 at 8:09
  • Thank you for a fantastic post. "You should be aware, however, that these things exist and are the root cause of many problems between multiple datasets." -- am I fine if I continue to use Zipcode as the core location data? I'm an engineer, so getting the walkthrough of steps helped a lot -- but I think I can take it from states to zips.. I'm surprised at the use of vector symbology -- couldn't I use whatever functionality QGis has for heat maps? Aug 15, 2012 at 0:05
  • Finally; how would you recommend making this work with an interactive map? GMaps seems the easiest way to go; so use something like an OpenLayers? Aug 15, 2012 at 0:08
  • @RizwanKassim OpenLayers would require that you had your own website / webspace to deploy to, but it would support a wider array of data types. If you're not confident in that, GMaps would support you quite well. Once you've done the analysis you can just export to KML and add it as an overlay to a public map. It might be worth asking another more direct question once you get that far though.
    – nagytech
    Aug 15, 2012 at 0:16
  • shape files for that many zip codes --- that's got to overwhelmed GMaps's client. Anyhow, I'll ask when I get here. Glad that QGis seems to be a solid alternative, so I don't have to deal with a Mapinfo demo. Just got a 850meg .MAP file from my upstream carrier; so can't wait for qgis.com to get back online so I can open it! =) Aug 15, 2012 at 1:34

If you are completely new to GIS then why not just stick with the Google Maps API? If this is not an option then you may want to consider OpenLayers, an Open Source Mapping API, possibly combined with GeoServer if you want to be serving your mapping from a Web Server. With OpenLayers you can start using OpenStreetMap as an alternative to Google Maps.

If you are wanting to create static maps you could use some Desktop software to create high quality PDFs/Images. You can get a free trial of MapInfo Professional or ESRI ArcGIS, who are the big boys of Desktop mapping, or there are some Open Source Desktop alternatives such as GrassGIS.

If you are trying to spatially reference your data using Zipcodes then you'll also need this data, I have no idea where you would obtain this from however since I am from England :)

I hope this get's you started.

  • 1
    MapInfo, GrassGIS, etc seem pretty intimidating; but I suppose that's the way to go. Aug 13, 2012 at 1:22
  • At first, yes, but once you know it you realize how powerful they are! Aug 13, 2012 at 11:23
  • Oh, I don't doubt it, but I don't have the time to indulge in as much learning as I'd like. Using GMaps with tile overlays does look like a good idea - and I'll try out Mapinfo. What do you think of Qgis? Aug 15, 2012 at 0:01

I actually developed a project like that, some years ago. Still being used by some mobile phone carriers in Spain. One of them: http://www.simyo.es/mapa-cobertura.html

I did it using PostGIS (to load the shapefiles with coverage data) gdal_rasterize (to rasterize the shapefiles into raster files) and gdal2tiles (to build a mosaic of PNG tiles adapted to several zoom levels from the raster files generated by gdal_rasterize). For the visualization, Google Maps, getting the PNG files from disk (see GTileLayer class)

Basically, I created a complete tile cache with gdal2tiles. Of course, this isn't the best solution, but the project's requisites drew the lines. The biggest problem I see to this approach is the statism. The tiles take too much time to be loaded. And once the they are created, you can't easily change them without re-processing.

  • statism? Too long to load or to generate originally? Aug 15, 2012 at 0:21
  • Too long to generate the tile cache. Aug 15, 2012 at 10:21

Actually, a viewpoint analysis, while a good start, is not truly correct. If you want to do that, you need to run an RF (radio-frequency) propagation analysis. The ham radio guys have developed a code called SPLAT! which does a pretty accurate job, but requires that you know the power at the tower, the elevation model, the height of the antenna, and some other factors.

  • 1
    Not applicable, the OP isn't going to this level of detail.
    – nagytech
    Aug 13, 2012 at 2:02

Very simple solution to this API. sign up here: https://boundaries-io.com

then in your code: https://vanitysoft-boundaries-io-v1.p.mashape.com/reaperfire/rest/v1/public/boundary?zipcode=20037,20002

The results are GeoJson to easily integrate that takes GeoJson like GoogleMap... used http://geojsonlint.com/ to cut and paste my GeoJson Results from the API call above to display the below image...Hope this helps!

enter image description here

  • Absolutely the best and most up-to-date answer. (No fault of the others, they're all from 2012) FYI the website has been updated to boundaries.io , and they have both 1) a docker image to build the data set yourself, and 2) a mongodump of their production database. Someone needs to buy these ppl a beer! Oct 24, 2017 at 22:51
  • That's incorrect @Marcel Chastain, boundaries-io.com , is the above reference answer, not what you are suggesting in your comment..., The entire data dump is at the US Census office. census.gov/geo/reference/zctas.html
    – Jeryl Cook
    Oct 25, 2017 at 23:14

Of course, first you would need to get the locations of the cell towers. These you can get from the FCC (not sure where exactly), though I believe that you can also get them from the WeoGeo Marketplace (market.weogeo.com). You'll also need a DEM of your area

Beyond that, you'd need to do a viewpoint analysis using the height of the cell tower as the "viewer height.". I think the height of each tower is an attribute of the tower shape file.

As far as software, I'd ratify what Rob said, though I'd also mention QGIS also.

Good luck!

  • 1
    I'm getting a list of coverage by zipcode; so it's not as complicated. From what I can tell, I need to convert those zipcodes into regions then display them somehow... Aug 13, 2012 at 1:22

Did this awhile back. Light on the How-to, but should give you some idea of how to do it.


  • I'm the carrier in this case =) Aug 15, 2012 at 0:03

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.