查询返回意外结果

时间:2019-10-01 19:58:31

标签: nominatim

好的,真正的信徒。我在这上面有些卡住了。我有一个Nominatim查询字符串,该字符串返回相同位置的不同GPS坐标,具体取决于其键入方式。我知道这听起来像应该如何工作,但请留在我身边。

顺便说一句,这个问题与命题查询有关。如果您不知道这意味着什么,我建议您继续前进或准备尽一切努力来整理文档。

背景故事:

我开发了一个应用程序,使用Nominatim和OSRM服务器API的组合从地址创建路由。如果需要的话,我可以提供更详细的描述,但就目前而言,就足够了。

首先,我发现了Nominatim无法解析的地址。地址是17500 Church Avenue S,Alva,FL,33920我通过的查询如下:

https://nominatim.openstreetmap.org/?street=17500%20Church%20Avenue%20Scity=Alva&postalcode=33920&&state=FL&format=json

如您所见,这将返回一个空的json字符串(whomp,whomp)。

但是,如果我只是在Avenue之后删除S标签,我会取回数据。看看:

https://nominatim.openstreetmap.org/?street=17500%20Church%20Avenue&city=Alva&postalcode=33920&&state=FL&format=json

所以这就是问题所在。我不希望用户必须清理自己的输入(特别是因为这么小的错误,在实际环境中可能是错字)。在这种情况下,Nominatim运行的Tiger数据库是完全错误的。在佛罗里达州的阿尔瓦(Alva)没有Church AveS。我还发现该数据库不是将Alva视为一个城市,而是一个小村庄。精细。我假设Nominatim足够聪明,可以将结果绑定到邮政编码。

好吧,你知道他们对假设的看法...

https://nominatim.openstreetmap.org/?street=17500%20Church%20Avenue&postalcode=33920&state=FL&format=json

因此,我和我的新朋友Umption注意到上面的查询给出了两个结果(对与错)。我将结果转出我的应用程序,意识到只有一个结果。然后,我问Umption,我们是否曾经将教堂Ave S的错误报告给Nominatim神。事实证明,我们做到了,Nominatim神已经更新了他们的数据库,但没有为其他本地托管的牡丹发布更新。

问题解决了吧?只需等待更新。错误。问题没有解决。这只是为更大的问题提供了一些启示。我们将如何处理与有效级别不匹配的地址。看,服务器可以给出(认为的)完全有效的结果,这些结果超出了用户需要看到的范围。在这种情况下,阿尔瓦(Alva)的教堂大道(Ave)在佛罗里达州奇普利(Chipley)返回了500英里以外的结果

一些选项是:

  • 使用USPS api验证地址(是否有经验?)
  • 尝试为每个邮政编码输入创建一个边界框
  • 根据搜索到的所有邮政编码创建一个通用的边框

每个选项都有其优点和缺点(我最喜欢#2)。万神殿有什么想法吗?

0 个答案:

没有答案
相关问题