0

エントリをロードした国テーブルと都市テーブルを作成する SQL を取得できる場所はありますか。都市が国にリンクされていて、都市に座標があれば素晴らしいと思います. このデータは、選択オプションを入力したり、マーカーを GoogleMap にプロットしたりするために使用されます。

4

2 に答える 2

0

geonames.org の txt 形式のデータベースを使用しました。

ここでは txt ファイルをダウンロードする方法について説明し、ここではMySql にインポートする方法について説明します。

私はそれを私のmysqlデータベースに入れましたが、実際の問題はありませんでした。テーブルのいくつかは巨大になるので、テーブルにインデックスを追加することを忘れないでください!

于 2011-09-17T21:27:36.287 に答える
0

古い質問に答えて申し訳ありませんが、同じ情報を探してここにたどり着きましたが、どこにも明確に答えられていないようです。

geonames からの「allCountries」データは非常に広範で (簡単に言うと)、ほとんどのアプリケーションにとって過剰です。「cities1000」の方がはるかに理にかなっていて、はるかに扱いやすいサイズです。サーバーへの 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 ;
  1. ダウンロードしたファイルをデータベースにインポートします (サーバーの構成に合わせてコマンドを変更する必要があります)。

mysqlimport -h localhost -u MySQL-USER -p --fields-terminated-by='\t' --lines-terminated-by='\n' --local MyDatabase /path-to/cities1000.txt

  1. 非常に重要:関連するフィールドにインデックスを追加する

それでおしまい!「allCountries」ファイルにすべての「ジャンク」がない、世界の都市の非常に包括的なリストです。

データに関する主な問題は、国が必要な場合は、そのテーブルを自分で作成し、それらを都市にリンクする外部キーを追加する必要があることですが、2 つ目のデータ ソース(XML で利用可能) といくつかの巧妙なクエリを使用すると、トリックを行います。

于 2013-02-19T22:11:48.040 に答える