2011-09-17 57 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提供)和一些聰明的查詢將會訣竅。