微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel Eloquent-根据纬度/经度半径获取结果

如何解决Laravel Eloquent-根据纬度/经度半径获取结果

我有一个名为Model的{​​{1}},它的结构很简单:

Place

我需要像| id | name | lat | lon | |----|-------|-----------|-------------| | 1 | hotel | 33.755787 | -116.359998 | | 2 | shop | 44.968046 | -94.420307 | | 3 | park | 44.333304 | -91.493768 | 之类的东西或一些准确的纬度/经度,这样我才能建立这样的查询

Place::whereRadius(100)->get()

当前,我的方法获取Place::whereBetween('lat',latitudes)->whereBetween('lon',longitude)->get(); 圆的纬度/经度点,这与我在前端通过radius进行的期望纬度/经度点不同,并获得了纬度/经度坐标数组像这样:

turf.js

我的下一步是计算上述接收圆的区域内可能的最大和最小点,但是对于较大的数据集或较大的圆,即使在较小的数据集中,也无法保证准确的结果。

是否有一种有效的方法,可以根据半径和某些口才来查询经纬度?

编辑我正在寻找Laravel /雄辩的方法。所建议的基于原始MysqL的半径在技术上可以正常工作,但与我在问题中所要求的不完全相同

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。