您的位置:首页 > 编程语言 > PHP开发

PHP_SQL根据当前坐标查询5公里以内的信息

2016-06-08 11:39 567 查看
最近在做一个类似于美团的功能,查询周边的商家,记录一下查询方法。 

<?php
$latitude = $_GET['y']; //当前坐标y
$longitude = $_GET['x']; //当前坐标x
$distance = 5; //5公里以内的信息,这里的5公里为半径。

// 此查询无排序
$sql = "select * from weixin_map where sqrt( ( ((".$longitude."-Longitude)*PI()*12656*cos(((".$latitude."+Latitude)/2)*PI()/180)/180) * ((".$longitude."-Longitude)*PI()*12656*cos (((".$latitude."+Latitude)/2)*PI()/180)/180) ) + ( ((".$latitude."-Latitude)*PI()*12656/180) * ((".$latitude."-Latitude)*PI()*12656/180) ) )/2 < ".$distance;

// 加入排序,从最近到最近排序。
$sql = "select *, sqrt( ( ((".$longitude."-Longitude)*PI()*12656*cos(((".$latitude."+Latitude)/2)*PI()/180)/180) * ((".$longitude."-Longitude)*PI()*12656*cos (((".$latitude."+Latitude)/2)*PI()/180)/180) ) + ( ((".$latitude."-Latitude)*PI()*12656/180) * ((".$latitude."-Latitude)*PI()*12656/180) ) )/2 as dis
from weixin_map group by dis asc having dis <".$distance;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: