正在寻求国家/州/城市数据库?[关闭]


22

我正在创建一个目录,该目录使用位置对所有列表进行分类。我想提供用户可以选择的位置列表,而不是依靠用户输入。我已经尝试过GeoBytes提供的GeoWorldMap,但存在某些问题。例如,它列出了275个国家。除此之外,他们的数据库会定期更新,这意味着,如果我维护本地数据库,则需要不时更新它,以确保它是最新的。

我想知道开发人员为此使用了什么。他们是否使用数据库而不是数据库来获取位置列表?

恐怕手动用户输入不是一个开放选项,因为按位置进行分类将是必不可少的,因此我不能信任或依赖用户手动输入的内容。

我见过很少有网站这样做,所以我确信那里有一个实用的解决方案。

Answers:


18

我认为Yahoo!的GeoPlanet对此非常有用:它们提供了一个非常详尽的位置列表以及它们之间的层次关系,您可以下载名称列表或使用其API。

其他地名词典(您正在寻找的最先进的术语)包括GeoNames,它也免费提供可下载的数据。(我敢肯定,StackOverflow甚至Google搜索都可以为您提供更多选择。)

另外,如果您打算创建一个UI来让用户从您的地点列表中进行选择,那么我建议您使用Freebase建议插件,这是一个jQuery插件,它将迫使用户从某个类别中进行选择(在您的情况下,国家/地区,例如),并提供一个不错的UI,供您从Freebase语义数据库认为正确的内容中进行选择。它甚至提供了类似Wiki的上下文来帮助消除歧义。


借用GeoPlanet。关于数据中的标识符(WOE ID)的好处之一是它们的设计稳定,因此您不会发现自己与数据库的未来更新有冲突。
米哈尔·米格斯基

1
感谢您提供这些链接。我花了很多时间与这两者合作并成功实现了它们,但是现在我要退出了。就国家和州而言,一切看起来都不错,但各州以下各州使用的结构却是如此不一致。我不再认为这是可行的。一些国家既有州又有城市,而有些国家只有城市,但这些国家有省而不是州。我给人的印象就是这样。但事实并非如此。来自美国的州下降了3个等级。即使亚特兰大是一座城市...

1
在乔治亚州,外观如下:美国->乔治亚州->富尔顿县->亚特兰大。富尔顿县不仅有亚特兰大,而且还列出了其他多个地点,并不是每个人都是一个城市。它还列出了Adamsville,那里实际上只是一个地方。

4
绝对地,这些不是直接的问题。可能的层次结构是复杂的(根据某些定义是无限的),并且取决于不同的文化规范和政府法规以及各种用例。我建议您看一下可能对您有很大帮助的文档:developer.yahoo.com/geo/geoplanet/guide / ...如果您愿意,您可以只抽出城市,也可以抽出行政区划。Yahoo!的文档解释了不同的层次结构。不过,我了解您的无奈,这很复杂!祝你好运!
npdoty 2010年

Yahoo Geoplanet数据已取下,这是最新版本:archive.org/details/geoplanet_data_7.10.0.zip
0fnt


1

看看GeoDB城市。这是我开发并托管的一项服务,它将GeoNames.org数据包装在REST接口中。我相信它应该可以提供您想要的稳定数据。不会物理删除任何旧城市数据,只会将其标记为此类数据(刷新GeoNames时可能发生)。该服务还允许您以多种语言显示城市/地区/国家/地区结果。

免费实例是相当合理的IMO,但我当然有偏见。


0

乡村城市数据库有多种收费和免费来源:

  1. GeoNames是免费数据,但是有很多数据。您将需要获得DBA的帮助才能清理数据。但是,根据您的要求清理和加载数据是一项一次性的工作。在zip解压缩后,我最终获得了1.3 GB的文件大小,并将此数据加载到DB也需要强大的硬件。
  2. MaxMind数据很旧,他们已停止更新其提供的免费数据
  3. 付费GeoDatasource数据
  4. 来自http://www.worldcitiesdatabase.com的城市数据库,价格合理。
  5. 然后,您也可以查看MaxMind付费数据服务,但是除非您的预算非常好,否则它们将非常昂贵。

选择是你的。我认为上述每个供应商的数据质量可能会有所不同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.