【发布时间】:2022-01-25 14:02:55
【问题描述】:
我有表“vehicle_location”和表数据类型中的“坐标”列是geomatry
在我的控制器中,我得到了经纬度和半径的请求,所以我想使用半径查找车辆位置数据
【问题讨论】:
我有表“vehicle_location”和表数据类型中的“坐标”列是geomatry
在我的控制器中,我得到了经纬度和半径的请求,所以我想使用半径查找车辆位置数据
【问题讨论】:
看看维基百科上解释的公式:https://en.wikipedia.org/wiki/Great-circle_distance
你会发现有人在这里问同样的问题:Measuring the distance between two coordinates in PHP
理想情况下,最好能够减少对距离您所在位置不远的汽车的距离计算。因此,通常情况下,我会从一个 SQL 查询开始,该查询仅根据给定的半径返回附近具有纬度和经度值的车辆。
然后,在第二步中,您可以使用算法(需要一些计算时间)计算这些汽车与您的位置之间的所有距离,然后对其进行排序。
理想的做法是尽可能尝试直接在 SQL 中进行计算,以便您可以对它们进行排序并使用半径进行过滤。如果它变得复杂,那么在 PHP 中进行计算和排序。
【讨论】: