Где я могу найти таблицы стран и городов - PullRequest
0 голосов
/ 17 сентября 2011

Где я могу получить SQL, который создаст таблицу страны и таблицу городов, загруженную записями. Было бы здорово, если бы города были связаны с их страной, а также если бы у городов были координаты. Данные будут использоваться для заполнения опций выбора, а также для нанесения маркеров на GoogleMap.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2013

Извините за ответ на старый вопрос, но я приземлился здесь в поисках той же информации, и, кажется, нигде не получен четкий ответ, так что вот так.обширный (мягко говоря) и излишний для большинства приложений.«City1000» имеет гораздо больше смысла и имеет гораздо более управляемый размер.Импортировать его в MySQL довольно просто, если у вас есть SSH-доступ к серверу.

  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».

Основная проблема с данными состоит в том, что если вы хотите, чтобы страны, вам нужно было построить эту таблицусамостоятельно и добавьте внешние ключи, связывающие их с городами, но второй источник данных (доступный в XML) и несколько умных запросов помогут вам.

0 голосов
/ 18 сентября 2011

Я использовал отформатированную базу данных txt с geonames.org.

Вот описание , как загрузить файлы txt, и вот описание того, как импортировать в MySql.

Я попал в базу данных mysql без особых проблем, просто не забудьте добавить индексы в ваши таблицы, так как некоторые из них будут огромными!

...