国家/州/城市数据库? [复制]
Posted
技术标签:
【中文标题】国家/州/城市数据库? [复制]【英文标题】:Country/State/City Database? [duplicate] 【发布时间】:2011-03-23 20:49:28 【问题描述】:可能重复:Database of Countries and their Cities
好的,这是一个非技术问题。我正在创建一个企业目录,我想按位置对列表进行分类。我不会为用户提供输入位置的选项,而是为他们提供遵循国家/州/城市格式的位置列表。我尝试了 GeoBytes 的 GeoWorldMap。一开始它看起来很有希望,我觉得这正是完成这项工作的原因,直到我意识到它提供了大约 275 个国家的列表,尽管被认可的国家数量在 192 到 195 之间。所以我不确定额外的 80 个国家/地区。当我意识到这个问题时,我去他们的网站做了一些估算,发现他们的列表会定期更新。所以这让我想到了一个问题。是否有可能找到一个列出所有可能位置的准确数据库?这里的大多数开发人员都用什么来做这样的事情?
【问题讨论】:
我认为大多数开发人员会允许用户输入位置。除非您正在执行某种地理编码(您使用该位置的地方确实执行某种地理代数)并且您需要将元数据与特定位置相关联(并且用户不能或不应该提供它),您不需要将所有这些数据弄乱您的数据库。同样,人们不会想要滚动浏览巨大的位置列表,因为他们可以直接输入。 滚动不会成为问题,因为我将使用 AJAX。我不会进行任何地理编码,但列表将按位置分类,因此需要关联。而且由于适当的关联很重要,用户提供的输入不能被信任:(我过去看到用户如何输入与位置有关的值。以国家为例。他们可以输入美国为美国、美国、美国、美国美国或只是美国。对于各州也是如此。他们将输入乔治亚州作为乔治亚州或 GA。另一个问题是拼写错误/错别字和不正确的大写。 听起来像是gis.stackexchange.com上最好问的问题 ***.com/questions/8346520/… Country 数据库的简单 SQL:infomazing.net/blog/… 【参考方案1】:很好的问题。我认为 Yahoo! 的 GeoPlanet 对此非常有用:它们提供了非常详尽的地点列表以及它们之间的层次关系,您可以下载名称列表或使用它们的 API。
其他地名词典(即您正在寻找的艺术术语)包括GeoNames,它还提供可免费下载的数据。 (我确信 *** 甚至 Google 搜索都可以为您提供更多类似的选择。)
另外,如果您打算创建一个 UI 让用户从您的地点列表中进行选择,我建议您使用 Freebase Suggest 插件,这是一个 jQuery 插件,它将强制用户从某个类别中进行选择(在您的例如,国家/地区)并提供一个不错的 UI,用于从 Freebase 的语义数据库认为正确的内容中进行选择。它甚至提供了一些类似于 wiki 的上下文来帮助消除歧义。
【讨论】:
Freebase Suggest 很酷,但如果您想辨别哪些区域包含在其他区域中以进行搜索,则有点棘手。例如,如果用户说他们在 Boulder,那么搜索科罗拉多州、美国、北美或世界各地的人应该包括该用户。我猜 Freebase 有这些数据,但您需要使用他们的 Web 服务 API 来做到这一点,而且我怀疑如果不拥有区域层次结构的本地副本,您将无法有效地做到这一点。 @MikeJ 你的用例越复杂,它肯定会变得越棘手。值得注意的是,Freebase 为位置提供的 RDF 确实包含 locationcontainedBy
属性,因此应该可以使用 RDF 解析器遍历地理层次结构(对于博尔德,Freebase 将博尔德县、科罗拉多州和美国列为容器) . Freebase 的位置本体是否足以满足您的目的是另一个问题。我认为雅虎!与 GeoPlanet 在解决这些问题方面做得很好。
在这里找到了你的答案 (gis.stackexchange.com/questions/603/…),但搜索了这个答案@SO 只是为了投票!以上是关于国家/州/城市数据库? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
用于加载国家、州/省/地区和城市选择菜单数据的 API 或数据库 [关闭]