Seen via Smashing Magazine on Twitter.
GeoNames is a "geographical database that covers all countries and contains over eight million placenames that are available for download free of charge."
I did a quick search for the city where I live, from the GeoNames home page, and it returned a lot of data (with links), not just for the city itself, but for various other related data, such as the division / sub-division in which the city is, some well-known landmarks like hotels in the city, etc.
The site / web services (see below) could be useful for apps that need to be geographically-aware in some way. To get a quick feel for the GeoNames web services, try this demo API call in your browser. It uses the GeoNames postalCodeSearch service with a parameter postalcode=9011, to return geographical information for St. Gallen in Switzerland, as well as other places in the world (such as in Hungary, Norway, Argentina, etc.), which have that postal code.
GeoNames has web services available for use. Most of the services (see overview) seem to use XML or JSON as formats, though other formats such as CSV, TXT and RSS also are supported for a few of them.
The data is provided free, commercial usage is allowed, and there are limits on daily and hourly usage. NOTE: The data is provided "as-is-where-is", i.e. with no guarantees.
They also have commercial web services which provide better speed, etc. and have Service Level Agreements.
If you wish, you can just download the daily database export, and build your app using that, instead of using the web services.
- Vasudev Ram - Dancing Bison Enterprises