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.

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?

Thank you!

share|improve this question

7 Answers 7

up vote 11 down vote accepted

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

share|improve this answer
+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! –  Rob Quincey Aug 13 '12 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? –  Rizwan Kassim Aug 15 '12 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? –  Rizwan Kassim Aug 15 '12 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 '12 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! =) –  Rizwan Kassim Aug 15 '12 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.

share|improve this answer
MapInfo, GrassGIS, etc seem pretty intimidating; but I suppose that's the way to go. –  Rizwan Kassim Aug 13 '12 at 1:22
At first, yes, but once you know it you realize how powerful they are! –  Rob Quincey Aug 13 '12 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? –  Rizwan Kassim Aug 15 '12 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.

share|improve this answer
statism? Too long to load or to generate originally? –  Rizwan Kassim Aug 15 '12 at 0:21
Too long to generate the tile cache. –  jorgeas80 Aug 15 '12 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.

share|improve this answer
Not applicable, the OP isn't going to this level of detail. –  nagytech Aug 13 '12 at 2:02

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!

share|improve this answer
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... –  Rizwan Kassim Aug 13 '12 at 1:22

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

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

share|improve this answer

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


share|improve this answer

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

I'm the carrier in this case =) –  Rizwan Kassim Aug 15 '12 at 0:03

Your Answer


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.