gpt4 book ai didi

algorithm - 有哪些预先存在的服务可用于计算两个地址之间的距离?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:28 24 4
gpt4 key购买 nike

我想实现一种方法来显示按与给定地址的接近程度排序的存储地址列表。

列表中的地址将存储在数据库表中。不同的部分有不同的字段(我们有邮政编码、城市名称等字段)所以它不仅仅是一个巨大的 varchar。这些是用户输入的,并且由于系统的性质可能并不总是完整的(有些可能缺少邮政编码,有些可能只有城市和州)。

尽管这是针对内部网应用程序的,但我在使用外部资源(包括访问互联网 Web 服务等)时没有任何问题。实际上,我更喜欢它而不是自己滚动,除非自己做是微不足道的。如果谷歌或雅虎!已经提供了免费服务,我非常愿意去看看。关键字是它必须​​是免费的,因为我无权为此功能向该项目引入任何额外成本,因为可以这么说,它已经是一个额外的“特权”。

我认为这很像许多实体店的“查找位置”功能。在适当排序的简单表格中显示它并显示距离(以英里为单位)非常好。显示 map 混搭甚至更酷,但我绝对可以忍受只返回距离并由我处理所有后续显示和排序。

简单距离算法的问题在于数据的性质。由于地址的全部或部分可以是未定义的,所以我没有像纬度/经度坐标这样方便的东西。另外,即使我要求邮政编码,90% 的地址也可能有相同的五个邮政编码。

虽然它不需要非常快,但正如我们所知,由于延迟而需要超过 7 秒才能显示在页面上的任何内容对于普通用户来说可能等待时间太长。如果这样一个假设的服务支持一次发送一批地址而不是一次查询一个,那就太好了。不过,我不认为地址列表总数会超过 50 个,如果有那么多的话。

最佳答案

GoogleYahoo!两者都免费提供地理编码服务。您可以使用 Haversine formula 计算距离(implemented in .NET or SQL)。这两种服务都可以让您进行部分搜索(仅邮政编码,仅城市),并让您知道其结果的精确度(这样您就可以排除没有有意义信息的位置,尽管 Yahoo! 提供的信息比 Google 更精确)。

关于algorithm - 有哪些预先存在的服务可用于计算两个地址之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/115850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com