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?

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.

Checklist

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

Shapefile of Zip Code Areas

Table of Information about Zip Code Areas

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.

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:

Discussion

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.

Links

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.

+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 QuinceyAug 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 KassimAug 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 KassimAug 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.
–
nagytechAug 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 KassimAug 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 :)

At first, yes, but once you know it you realize how powerful they are!
–
Rob QuinceyAug 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 KassimAug 15 '12 at 0:01

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.

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.

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.

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 KassimAug 13 '12 at 1:22

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!

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.