我有一个 MySQL 表,其中有三列: lat , lon 和 ID
现在作为输入我希望用户提供一对Lat&长即可。作为回报,我想显示排序的行距离最近的。
现在,这个问题的一个解决方案是,获取数组中的所有条目,创建一个临时数组,使用 hasrsine计算每个项目的距离公式,推送到临时数组,最后在该数组上执行任何排序算法。
但是,这个操作很重,我想要一个更好的解决方案。有没有?
P.S:我正在使用PHP脚本。
答案 0 :(得分:1)
简短回答:不。
答案很长:也许吧。如果你在一个给定的非常有限的半径范围内工作,你可以通过在lat和lng中每十度建立一个固定值来简化事情并应用hypothenuse([delta lat square + delta lng square]的平方根)。
但这只适用于非常接近中心点的点。