Yahoo! GeoPlanet
I am working on an integration with the Yahoo Geo API this week. It's very interesting; thanks to Yahoo! for providing such an amazing service free of charge to the community. The request and response format of this Rest API is extremely clean to work with. Here is a summary of Yahoo's geo planet from Yahoo! itself:
Yahoo! GeoPlanetTM is designed to bridge the gap between the Real and Virtual worlds by providing the Internet with an open, comprehensive, and intelligent infrastructure for geo-referencing data on Earth’s surface.
In practical terms, Yahoo! GeoPlanet is a resource for managing all geo-permanent named places on earth. It provides the Geographic Developer Community with the vocabulary and grammar to describe the world's geography in an unequivocal, permanent, and language-neutral manner, and is designed to facilitate spatial interoperability and geographic discovery. Developers looking to geo-enable their applications can use GeoPlanet to traverse the spatial hierarchy, identify the geography relevant to their users and their business, and in turn, unambiguously geotag, geotarget, and geolocate data across the Web.