我想实现一种方法来显示按与给定地址的接近程度排序的存储地址列表。
列表中的地址将存储在数据库表中。单独的部分有单独的字段(我们有邮政编码、城市名称等字段),因此它不仅仅是一个巨大的varchar
. 这些是用户输入的,并且由于系统的性质可能并不总是完整的(有些可能缺少邮政编码,而另一些可能只有城市和州)。
虽然这是针对 Intranet 应用程序,但我在使用外部资源(包括访问 Internet Web 服务等)时没有问题。实际上,我更喜欢自己动手,除非自己做是微不足道的。如果谷歌或雅虎!已经提供免费服务,我非常愿意检查一下。关键字是它必须是免费的,因为我不能随意为这个项目引入任何额外的成本,因为它已经是一个额外的“特权”可以这么说。
我想这很像许多实体店做他们的“查找位置”功能。将它显示在一个适当排序的简单表格中并显示距离(例如英里)非常棒。显示地图混搭更酷,但我绝对可以忍受只是恢复距离,我处理所有后续显示和排序。
简单距离算法的问题在于数据的性质。由于地址的全部或部分可能未定义,因此我没有任何方便的东西,例如纬度/经度坐标。此外,即使我要求邮政编码,90% 的地址也可能具有相同的五个邮政编码。
虽然它不需要非常快,但正如我们所知,由于延迟而需要超过 7 秒才能显示在页面上的任何内容可能对于普通用户来说等待时间太长。如果这样的假设服务支持一次发送一批地址而不是一次查询一个,那就太好了。尽管如此,我不应该认为地址列表总数会超过 50 个,如果有的话。