Andreas Gohr has a fun example of how you can combine the Google mapping technology with the GD rendering image that comes standard with PHP to make "pirate maps" (like this).

Yesterday I thought about visualizing photo geodata. While tinkering with different ideas, I thought about making it look like a real paper photograph placed on a real map. Of course it had to be automated somehow. So I spent a few hours with PHP's GD library functions. It's really cool what you can do with it.

He used a MapDecorate class he put together to create the "treasure map" in a few simple steps - grab the map and convert to sepia, add additional textures/images, add custom text to the bottom and place the selected photo on the map.