国家/州/城市数据库?

11

可能有重复:
国家和城市数据库

好的,这是一个非技术性问题。我正在创建一个商业目录,并希望按位置对列表进行分类。我将提供一个遵循“国家/州/城市”格式的位置列表,而不是给用户提供输入位置的选项。我尝试过GeoBytes的GeoWorldMap。一开始看起来很有前途,我认为它正是能胜任这项工作的工具,直到我发现它提供了大约275个国家的列表,虽然公认的国家数量在192至195之间。所以我不确定那多余的80个国家 是什么。当我意识到这个问题后,我去他们的网站查了一下,发现他们的列表会定期更新。这就引发了我的一个问题。是否可能找到准确的数据库列出所有可能的位置?在这方面,大多数开发人员使用什么工具呢?


1
我认为大多数开发者会允许用户输入位置。除非你正在进行某种地理编码(在此过程中,你使用该位置执行某种地理代数),并且需要将元数据与特定位置关联(而用户不能或不应提供它),否则无需在数据库中存储所有这些数据。同样,人们不希望在可以直接输入时滚动查看庞大的位置列表。 - Adam Robinson
2
滚动不会是问题,因为我将使用AJAX。我不会进行任何地理编码,但是列表将按位置分类,因此需要关联。而且因为正确的关联很重要,所以不能信任用户提供的输入 :( 我曾经看到过用户输入与位置有关的值的方式。以国家为例。他们可能会输入美国为US,USA,United States,United States of America或仅美国。州也一样。他们将佐治亚州输入为佐治亚州或GA。另一个问题是拼写错误/打字错误和不当的大写。 - Naif Amoodi
最好在http://gis.stackexchange.com上提出这样的问题。 - fmark
1
http://stackoverflow.com/questions/8346520/database-of-all-countries-with-all-cities-in-respective-country - Somnath Muluk
简单的 SQL 国家数据库示例:http://www.infomazing.net/blog/database-country-table-with-sql-insert-statements - Saqib Vaid
显示剩余2条评论
1个回答

7

非常好的问题。我认为雅虎的GeoPlanet可以非常有用:他们提供了一个相当全面的地方列表及其之间的层次关系,并且您可以下载名称列表或使用他们的 API。

其他地名词典(这是您寻找的术语)包括GeoNames,该网站也提供可免费下载的数据。 (我相信 StackOverflow 或甚至谷歌搜索可以为您提供更多类似的选项。)

此外,如果您计划创建用户选择列表的 UI,则我建议您使用Freebase Suggest插件,这是一个 jQuery 插件,将强制用户从某个类别中进行选择(例如,在您的情况下,可能是国家),并为从 Freebase 语义数据库中正确的选择提供良好的 UI。它甚至为消除歧义提供一些类似于维基百科的上下文信息。


Freebase Suggest非常酷,但如果您想要区分哪些地区包含在其他地区以进行搜索,则有点棘手。例如,如果用户说他们在博尔德(Boulder),然后搜索科罗拉多州(Colorado)、美国、北美洲或世界上的人,应该包括该用户。我猜Freebase有这些数据,但您需要使用他们的Web服务API才能做到这一点,并且我怀疑如果没有拥有本地副本的话,您无法高效地完成它。 - MikeJ
@MikeJ 随着您的用例变得越来越复杂,情况必然变得更加复杂。值得注意的是,Freebase提供的有关地点的RDF确实包括位置containedBy属性,因此可以使用RDF解析器遍历地理层次结构(对于博尔德,Freebase在容器中列出了科罗拉多州博尔德县和美国)。Freebase的位置本体论是否足够满足您的需求是另一个问题; 我认为Yahoo! 在解决这些问题方面做得很好,特别是在GeoPlanet上。 - npdoty
1
在这里找到了你的答案(http://gis.stackexchange.com/questions/603/is-a-country-state-city-database-available),但还是在SO上搜索了一下,只是为了点赞! - Tiago Cardoso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接