2011-09-17 76 views
0

有没有可以获取SQL的地方,这将创建一个国家表格和城市表格,并且可以载入条目。如果这些城市与他们的国家相连,并且城市也有协调,那将是非常好的。数据将用于填充选择选项并将标记绘制到GoogleMap上。我在哪里可以找到国家和城市表格

+0

以美国为中心还是试图处理整个世界?你需要多精确? [This](http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Geographical_coordinates)对我来说似乎是一个起点 – billinkc

+0

整个世界!欢呼,我会检查链接 – iamjonesy

+0

说实话,表是有点太全面!我搜索爱丁堡的名字,并得到了爱丁堡和爱丁堡的所有酒店和医院。我只是担心,对于一个AJAX下拉链,这将需要太多时间来查询。我也不确定fcode是什么意思。一个城市可以出现不止一次但不同的代码 – iamjonesy

回答

0

我已经使用geonames.org的txt格式化数据库。

继承人描述how to download的txt文件,这里有关于如何import into MySql的说明。

我把它放到我的mysql数据库中,没有真正的问题,只记得添加索引到你的表中,因为它们中的一些将是巨大的!

+0

这是否包括城市?我看了看,它看起来像只有国家 – iamjonesy

+0

是的,包括城市 - 再看看从我的答案下载链接命名allcountries文件。它包含所有具有长/纬度的城市,甚至可以保持每个城市的人口和海拔高度! – Muleskinner

+0

呃哦文件是900MB太大,无法在Word中打开或Notepadd ++需要找到一种方法来打开它 – iamjonesy

0

对不起回答一个老问题,但我在这里登陆寻找相同的信息,它似乎没有清楚地回答任何地方,所以在这里。

来自geonames的'allCountries'数据非常广泛(可以轻描淡写),并且对于大多数应用程序来说都是过分的。 “城市1000”更有意义,并且具有更易于管理的规模。只要您具有SSH访问服务器的权限,将其导入MySQL就非常简单。

  1. 下载文件 wget http://download.geonames.org/export/dump/cities1000.zip

  2. 提取它unzip cities1000.zip

  3. 运行以下查询(不要忘记,以取代你的数据库名和表名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提供)和一些聪明的查询将会诀窍。