The company MaxMind.com[1] has agreed to release their cities of the world database under the GPL. The database contains locations by country, city, latitude and longitude. There are over 3,047,000 records in the database. For those of you who have tried the location.module with the zipcodes database from CivicSpace, you will recognize how cool it is and how well this fits with that project and therefore Drupal.
In the sample below you will see the main characteristics of the data. There are two variants of city, one with lowercase letters and only ASCII characters. I assume this is intended for search purposes. The city_accented column contains full city names including accents and special characters.
How we use this data is open for discussion. It is different in nature than the zipcodes database due to the absence of zipcodes, which are used as primary keys in the Civicspace implementation. Also missing are timezones.
Questions like how we fill out the data to include these missing elements, how we maintain this data, how we structure it in respect to supporting only subsets of it for regions or groups of countries, these are all topics for discussion. In the end, modelling location data is tricky.
With data like this a whole new class of applications becomes possible. Thank you MaxMind for the generous contribution!