The image drawing part wasn't the hard part. The hard part was figuring out a scheme to make sure that labels don't overlap. This is a problem for things like the PM world map, as groups tend to be clustered together (such as in the UK, or the east coast of the USA).
It's a hard problem mathematically, but I did my research and eventually ended up with an Inline::C solution using a simulated annealing method.
It comes with example scripts which draw maps for Perl Mongers, CPAN Mirrors and Debian developers, so check out the code and let's get some more geographical maps out there!
Yes, I'm a sucker for pretty pictures...