Note: I wrote this up to help out a few colleagues a few months ago, and I thought it might be useful to more people. It's aimed at regular, non-programmer journalists who may at some point need to throw a quick map alongside a story (or by itself, that's cool, too). Obviously, this is in no way comprehensive.
In all cases, start with a spreadsheet (preferably using Google Docs ). This will ultimately make your life easier, even if you're simply pasting in values. Starting with structured data means you always know what's what.
Another thing you'll probably need at some point: Geocoders. Geocoding is a process of assigning a longitude and latitude to a physical address. Two useful tools are
Quick tools for news you can use
This is what we used to create the Obama Euro-trip map. Export your spreadsheet as a comma-separated values (CSV) file. Upload to Zeemaps (requires a free account) and you'll receive an email within one hour pointing to your finished map.
Lat/Lng fields aren't necessary with Zeemaps but geocoding tends to be more accurate if you do it yourself. The more obscure the locations (for example, smallish cities in China) the more likely you'll want to geocode locations yourself.
Zeemaps has a handful of features that might be useful depending on the project. It can output a PDF or JPG version of a map for $1, and it can be embedded as Flash or in an iFrame, which makes it a bit more versatile than most apps.
It's also possible to open a Zeemaps map to public editing, making it effectively a map wiki. You can moderate submissions, though there isn't much instruction. Check under settings > privacy and add an admin password to make sure you know who's editing your map.
Easy, basic, Atlas will get you a map without much hassle. It's not as feature-rich as Zeemaps and doesn't always geocode as well, but it's probably easier to start with. Like Zeemaps, it can be collaborative and is probably a little easier to moderate.
Google MyMaps will let you do most anything the public API allows, but it's not always easy. There's no obvious way to bulk upload data, meaning it's usually better with fewer locations.
MyMaps allows collaboration in much the same way as Google Docs. You can invite collaborators or allow anyone to edit.
A little more complicated, but still code-free
Erica Smith at the Post-Dispatch likes this method more than I do. It will get you a map in a hurry, and it should be possible to add or update content. It does require longitude and latitude fields. You can get there with something like geocoder.us or use Google's batch geocoder.
Pipes is pseudo-programming, which makes it both more powerful and more complicated.
The trick here is getting clean data in, geocoding, then outputting a map. As usual, start with your spreadsheet. If you've already geocoded the data, you're halfway there.
- Start with your spreadsheet. Make sure location fields are clearly marked, either as addresses or lat/lng.
- Publish your spreadsheet as CSV, RSS or ATOM.
- Go to http://pipes.yahoo.com and create a new pipe
- Depending on what format you published your spreadsheet, use either Fetch Feed or Fetch CSV. Paste in the URL for your CSV or feed.
- Use the Location Extractor (under Operators) to isolate location data in each feed element. You may also need to use Rename.
- Output your feed and click on the Map tab.
Here's another trick I like: Scrape a table from Wikipedia, publish it as a spreadsheet, map it with Pipes.
If you want to get into serious, totally custom, exactly-like-you-want-it maps, and you're not afraid of a little code, check out the Google Maps API. You'll need an API key (free). There are two useful tutorials.
- Maps API Documentation: Less a tutorial than a description of all the inner workings of the code. I find it more useful when I have a specific task and want to know how to do it.
There are other tools out there. You can find them in the toolkit.
Finally, if you've made it through all that and really want to go crazy, roll your own maps.