让用户最接近城市的最佳方式?Python/Djang

2024-09-29 04:24:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网站与有限数量的城市在数据库,需要显示用户最近的城市,他目前的位置。在

我可以通过maxmindapi获取位置,但是我想在数据库中获得离用户city最近的城市。在

例如,如果我在数据库中有这些城市:Los AngelesSan Francisco和{},并且我从其他城市访问,比如Miami,我应该会看到纽约市被选中,因为它在地理上是最近的。在

什么是最好的方法来做到这一点快速和性能意识?在


Tags: 方法用户数据库city数量网站性能地理
2条回答

您应该存储每个城市的大致纬度和经度,为用户计算纬度和经度,然后使用Haversine formula查找距离。它是用Javascript here实现的。maxmindapi应该提供纬度和经度。在

当你在数据库中添加一个城市时,会运行一段代码(离线),计算出离你所有城市最近的城市。您可以使用外文密钥将每个城市指向另一个城市作为其最近的城市。在

现在您已经预先计算好了所有内容,每当有一个live请求,使用一个城市的名称,您只需使用城市名称点击数据库,您就可以通过指定的foreignkey访问最近的城市。(城市-外国语-城市)

现在这将是非常快的,因为你已经预先计算了最近的城市离线,并可以返回结果,立即对每个现场请求。在

但是你打算多久增加一个城市?可能不经常。所以,离线预计算是很少见的,即使需要一点时间。对实时请求的响应非常快。(其他人已经推荐了计算距离的公式,所以我将跳过这一部分!)在

相关问题 更多 >