我是否可以在任何地方获得SQL,它将创建一个加载了条目的国家/地区表和城市表。如果城市与他们的国家相关联,并且如果城市有坐标,那将是很好的。数据将用于填充选择选项并将标记绘制到GoogleMap上。
答案 0 :(得分:0)
我使用了geonames.org的txt格式化数据库。
下面是关于how to download txt文件的说明,这里是关于如何import into MySql的说明。
我把它放到我的mysql数据库中没有真正的问题,只记得在你的表中添加索引,因为其中一些会很大!
答案 1 :(得分:0)
很抱歉回答了一个旧问题,但是我在这里寻找相同的信息并且似乎没有在任何地方清楚地回答,所以这里有。
来自地理名称的'allCountries'数据非常广泛(简而言之)并且对于大多数应用来说都是过度的。 'cities1000'更有意义,并且具有更易于管理的尺寸。只要您具有对服务器的SSH访问权限,将其导入MySQL就非常简单。
下载文件
wget http://download.geonames.org/export/dump/cities1000.zip
摘录unzip cities1000.zip
运行以下查询(不要忘记将MyDatabase替换为您的数据库名称,并且表名必须与文件名相匹配)
CREATE TABLE IF NOT EXISTS `MyDatabase`.`cities1000` (
`geo_id` INT(11) UNSIGNED NOT NULL PRIMARY KEY,
`geo_name` VARCHAR(200) NOT NULL DEFAULT '',
`geo_ansiname` VARCHAR(200) NOT NULL DEFAULT '',
`geo_alternate_names` VARCHAR(2000) NOT NULL DEFAULT '',
`geo_latitude` DOUBLE PRECISION(11,7) NOT NULL DEFAULT '0',
`geo_longitude` DOUBLE PRECISION(11,7) NOT NULL DEFAULT '0',
`geo_feature_class` CHAR(1) ,
`geo_feature_code` VARCHAR(10) ,
`geo_country_code` CHAR(2),
`geo_country_code2` VARCHAR(60),
`geo_admin1_code` VARCHAR(20) DEFAULT '',
`geo_admin2_code` VARCHAR(80) DEFAULT '',
`geo_admin3_code` VARCHAR(20) DEFAULT '',
`geo_admin4_code` VARCHAR(20) DEFAULT '',
`geo_population` BIGINT(11) DEFAULT '0',
`geo_elevation` INT(11) DEFAULT '0',
`geo_gtopo30` INT(11) DEFAULT '0',
`geo_timezone` VARCHAR(40),
`geo_mod_date` DATE DEFAULT '0000-00-00'
) CHARACTER SET utf8 ;
mysqlimport -h localhost -u MySQL-USER -p --fields-terminated-by='\t' --lines-terminated-by='\n' --local MyDatabase /path-to/cities1000.txt
就是这样!一个仍然非常全面的城市列表,没有“allCountries”文件中的所有“垃圾”。
数据的主要问题是,如果你想要国家,你将不得不自己构建该表并添加将它们链接到城市的外键,但是第二个data source(以XML格式提供)一些聪明的查询就可以解决问题。