创建地理编码/地名词典Web服务?


14

我想为Java族谱编写一个地理编码Web服务。因为这是家谱,所以我不需要走上街头。我只需要去县里。

查看家谱数据,拼写错误的名称非常普遍。人们还使用许多非标准的缩写。例如,巴尔的摩县可能看起来像:

  1. 巴尔的摩
  2. 巴尔的摩县
  3. 巴尔的摩公司
  4. 巴尔的摩城

Answers:


10

我认为这个问题不是明确的地理范围,因为您只对名称感兴趣,因此您可能想在Stack Overflow上提问。您可以通过以下两条信息来回答您的问题:州和更正的县名。要执行校正,您可能希望使用Levenshtein距离示例和java实现)将模糊数据与校正后的值进行匹配。


+1可能是事实。Levenshtein似乎是一个不错的起点,而Postgres甚至支持它。谢谢。
杰·阿斯克伦

我认为将Levenshtein距离与Geonames(geonames.org)的数据结合起来可能对我有用。谢谢。
杰·阿斯克伦

5

地理编码服务需要地理几何数据,关联的地名词典(以处理命名和名称替代)和用户界面(以中介搜索)。对于反向地​​址解析器,您需要添加拓扑验证器。对于Java,开源的JTS拓扑套件将是自然的选择:http : //www.vividsolutions.com/jts/jtshome.htm

可以在人口普查中找到美国的县几何图形:http : //www.census.gov/geo/www/cob/co2000.html

首先,美国地名委员会拥有一个数据库:http : //geonames.usgs.gov/

创建一个可靠的地名词典数据库和编织算法以容忍近似搜索匹配是困难的部分。


算法是我要寻找的。
杰·阿斯克伦

有关语义相似性算法的查询可能会在主要stackoverflow网站上吸引更多受访者。
glennon


1

如果您可以遵循Google 的服务条款,则Google提供了一个不错的地理编码API基本的演示可以在这里找到

使用其服务受到一些限制,但结果是大多数用户直观,快速,准确且熟悉。它将使您可以专注于开发服务的家谱部分。


我真的很想在家里托管所有内容,而不依赖于外部api。
杰·阿斯克伦

因此,您正在寻找开放源代码许可的地理编码数据库吗?
亚当·马坦
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.