我们常常在一些运用中看到类似这样的功能,即根据用户定位显示间隔用户由近及远的商品或商家。如下图所示:
在上图中,我们可以看到平台显示了一些商家,同时标注了它们离我所在位置的间隔。这样的设计对付用户或者商家来说体验都是比较好的,一方面有助于用户筛选商家,另一方面也帮助了商家进行精确营销。
那这是如何做到的呢?

在一开始入手这个功能的时候,我曾考虑先从MySQL数据库里拿出数据,然后在页面渲染的时候,再利用第三方舆图库(如腾讯舆图,高德舆图等),打算出位置,渲染到页面。如果你单论是否可以实现这样的功能,那这样的方案是没有问题的;但你若问这样的方案实现起来是否麻烦,那我就不能乱下定论了,由于毕竟间隔的打算在前端处理。
那可不可以直接在MySQL数据库里打算间隔呢?
最近在重新研究此功能的时候,我创造是可以直接在MySQL数据库里直接打算间隔的。
首先,获取打算公式,如下:
然后,根据公式,在MySQL数据库里创建一个函数DISTANCE,如下:
第三,调用DISTANCE函数,并传入两点的经纬度,如下:
以上SQL语句只是打算两点之间的间隔,如果你想在打算间隔的同时,再作筛选和排序,你可以如下操作:
这样,你也可以实现根据用户定位由远及近的显示商品或商家。
比拟,在前端打算间隔和在MySQL数据库打算间隔,创造在MySQL数据库上操作有很大上风,它不仅可以轻松的打算间隔,而且还可以轻松的按照间隔进行排序、筛选等。
根据个人履历,推举大家利用MySQL数据库打算两点间隔。
本文由“编码之道”原创,转载请注明出处。