【javascript】h5根据地理位置对省份排序
阅读: 36 回复: 0

发布于:2020-9-20

问题描述

根据当前的位置到其他省份的距离,对省份进行排序    离当前距离越近  显示越靠前


比如我在北京   就需要  北京  天津  吉林 这样按照距离远近排序

解决方案

解题思路:

要算省份与省份之间的距离必须要选出参考点,例如以省会为参考点。

方法一: 不调用api计算, 手动录入省份和省份之间的距离然后存入数据库中,但是这个数据条数

             通过数学计算公式可以算出来,比如中国31个省 那么计算的数据条数为: 

             1 + 2 + 3 + ...... + 30 = 15 * 31 = 465 条数据。

             录入完成以后就可以很容易排序了。

方法二:使用百度地图Api例如:

            

         

             输入一个省份计算出经纬度,这里应该是省会所在省份的经纬度, 这样一来调用api的频率

             会变高,但是我们可以做一个简单的优化,就是将api调用返回的结果经过经纬度换算成距离               以后存储到数据库中,这个过程可以提前录制好,那么我们排序的时候性能就高了。

点评:

方案1工作量大,但是查询性能好,误差小,因为我们是通过手动判断的。

方案2工作量相对小,只需提前写一个算法通过api录入即可,但是误差较大。

最终: 我们结合方案1和方案2,通过方案2录入,然后在订正数据即可完美解决。

录屏实操

录屏暂未发布,请耐心等待