thinkphp6实现分页经纬度范围查询

对于经纬度范围的解释网上有许多,这里就不说了。直接上代码

最后配置

$latitude :纬度
$longitude : 经度

        $list = $this
            // 直接将经纬度的计算放到 field中执行
            ->field("(6378.138 * 2 * asin(sqrt(pow(sin((latitude * pi() / 180 - ".$latitude." * pi() / 180) / 2),2) + cos(latitude * pi() / 180) * cos(".$latitude." * pi() / 180) * pow(sin((longitude * pi() / 180 - ".$longitude." * pi() / 180) / 2),2))) * 1000) as distance")
            ->where($where)
            ->order( distance )
            ->paginate([ list_rows =>10, query  => $param]);

如果你查询出来的距离范围不对的话,看看传值过来的经纬度是否写反了
希望以上代码对你们有所协助

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容