我想根据到对象的距离对数据库中的结果进行排序。我的对象和我的数据库项目都有lat
并且我可以用hasrsinelng
计算距离。
问题是它们需要通过与数据库的距离来选择。我不能抽出整个数据库,进行计算,然后得到我需要的结果,因为......每次我这样做都会死一只小猫。
有人建议将半正弦公式放入
order_by
. 会死多少只小猫?有人建议某种空间插件。他们在做什么?我应该使用哪一个?
另一个看起来很难看的替代方法是,您手动采取一些距离并通过排除 and 的所有大小来制作一个
lat
正方形lng
。如果没有足够的结果,或者结果太多,请更正距离并再次运行查询。
谁能告诉我应该与pro's con's的最佳方式是什么。我也将 LAMP/MAMP 与 CakePHP 一起使用。