1

我正在为德国和法国用户设计网络表单。在这种形式下,用户必须多次输入街道名称。以编程方式查找常见的欧洲街道名称

我想尽量减少对用户的烦恼,并提供基于普通法语和德语街道名称的自动完成功能。

任何想法,我可以免费的名单?

多谢,

亚当

回答

2

您的用户是否必须多次输入相同的街道名称?因为你可以很容易地通过编写预填场的东西来防止这种情况。

另一个选择可能是将您的用户数据库用作资源。查询现有用户输入的所有可用街道名称,并使用该名称生成建议。 当然,如果你有相当多的用户,这只会有效。

[编辑]你可以看看OpenStreetMap和他们的Planet.osm愚蠢(或者看看here包含数据的欧洲转储)。这基本上是OSM数据库及其所有的地图信息,包括街道名称。这些都是XML格式,街道似乎被存储为Ways。有一些工具(即Osmosis)可以提取数据并将其放入数据库中,或者您可以编写一些内容来查看数据并过滤数据库的街道名称。

+0

+1这是计划的一部分,但能够从一开始就很好。 – 2010-02-11 16:55:54

1

您可以通过通过谷歌API拉动名称开头(只要找到如经/纬外部边界 - 巴黎,去中心) - 但由于谷歌的限制API使用,这可能需要很长时间才能完成。

我曾经联系过布拉迪斯拉发市的街道名单,他们把它寄给我作为XLS。也许你可以尝试为你的首选城市做这件事。

1

开始于http://en.wikipedia.org/wiki/Category:Streets_in_Germanyhttp://en.wikipedia.org/wiki/Category:Streets_in_France。您可能想要验证维基百科的版权不是更适合您的需求的保护。

编辑(从我自己的意见合并):当然,要回答你的问题的“编程”部分:弄清楚如何蜘蛛和刮那些维基百科分类页面。有礼貌的事情是缓存它,而不是每次你需要获得街道名单时都打它;每个月左右刷新一次应该足够了,因为信息不太可能发生显着变化。

+0

+1谢谢!这些文章很小,我会尽力找到他们的法文\德文等值。 – 2010-02-11 16:17:01

+0

好点 - 法国/德国的等值确实有更多的街道名称。对于德国:http://de.wikipedia.org/wiki/Kategorie:Straße_in_Deutschland和法国:http://fr.wikipedia.org/wiki/Catégorie:Liste_de_rues_de_commune_française。正如我上面提到的,你想要遍历这些类别中包含的类别页面。例如,您可以点击http://de.wikipedia.org/wiki/Kategorie:Straße_in_Berlin在柏林的街道。 – stack 2010-02-11 16:22:04

+0

需要考虑的另一件事是,维基百科可能(我没有证实这一点)倾向于具有历史意义的街道,并且*绝对不会提供完整的列表。当然,这里的问题在于,具有历史意义的一组街道可能没有足够大的交叉口(没有双关语意图),预计最常在您的窗体上输入一组街道。 – stack 2010-02-11 16:28:03

0

@dusoft可能是一些东西 - 也许有人在政府一级可以帮助?我不认为街道名称的简单列表不能被版权保护,也不会收取任何版税。如果是这样的话,也许你甚至可以从TomTom这样的东西中挖出一些映射数据?

1

我喜欢Tom van Enckevort的建议,但我会更具体一点,只是看看Planet内部。OSM的联系,因为他们大多需要一些工具的使用,以应对支持的格式(PBF,OSM XML等)

事实上,在下面的链接看看 http://download.gisgraphy.com/openstreetmap/

的文件有全部为.txt格式,如果它只是您想使用的街道名称,只需提取第二个字段(名称)即可完成。

作为一个项目,我没有使用我的项目中的法文文件,但挖掘德文文件后(在标准化后)在多于380K的独特条目(〜6 MB大小)中产生了