3 июля 2013 г. Гео базы данных. Часть 2

geosearch

Я уже писал ранее о базах данных содержащих информацию о географических локациях в посте "Гео базы данных" и теперь хотел бы дополнить этот пост новыми находками.

Yahoo! GeoPlanet Data

GeoPlanet Data - разработка Yahoo Geo Team из компании Yahoo. Развернуть дамп в MySQL поможет bash скрипт, который создаст базу yahoo_geoplanet и развернёт дамп в неё. О том как использовать этот скрипт можно прочитать здесь. В базе 4 таблицы:

  1. adjacencies

  2. admins

  3. aliases

  4. places

База имеет очень хорошие иерархические связи, что к сожалению не всегда есть в базе GeoNames. Можно делать выборки стран, штатов, областей, городов и без особого труда находить родительскую географическую локацию. Так же из таблицы adjacencies можно находить все соседние географические локации, которые будут соседями для той или иной локации. Еще есть таблица с альтернативными названиями локаций. Это могут быть, например, названия города на разных языках, которые сводятся к одному id города из таблицы places. В общем база достойна внимания. Если не нужно делать выборки по географическим координатам, то пожалуй я бы выбрал эту базу вместо GeoNames.

Citieslist

Недавно попалась на глаза база стран и городов от Андрея Корчака под названием Citieslist. База на русском языке. Даже не знаю плюс это или минус. Зависит от проекта. Если он на русском - отлично, а если проект на английском или любом другом языке, то можно прогнать базу через переводчик. Для того что бы получить эту базу стран и городов себе в MySQL можно воспользоваться готовым bash скриптомo-mysql-parser/master/citieslist.sh), в котором при желании можно указать название базы в которую будет развернут дамп (по умолчанию это citieslist). В базе 2 таблицы:

  1. countries

  2. cities

Из этих таблиц видно, что есть списки стран и связанные штаты, области и города входящие в них. Так же у каждой страны есть запись о названии и обозначении валюты привязанной к этой стране. Структура данных представлена не самым оптимальным образом. Можно было бы присвоить названию области или штата числовой id, проиндексировать его и хранить в базе вместо типа varchar(255), что бы упростить выборки. Ну всё это при желании можно доработать. В целом база довольно проста и может подойти для простых проектов в которых нужно построить связи страна - область - город.

Базы данных