[LBS]查询离某个经纬附近的数据SQL语句
//地球半径,平均半径为6371km /** *计算某个经纬度的周围某段距离的正方形的四个点 * *@param lon float 经度 *@param lat float 纬度 *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米 *@return array 正方形的四个点的经纬度坐标 */
//对于经度和纬度大于或小于该用户1度(111公里)范围内的用户进行距离计算,同时对数据表中的经度和纬度两个列增加了索引来优化where语句执行时的速度.
select * from tablename where lat>34.23414-1 and lat<34.23414+1 and lon>117.180734-1 and lon<117.180734+1 order by ACOS(SIN((34.23414 * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS((34.23414 * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) * COS((117.180734 * 3.1415) / 180 - (lon * 3.1415) / 180 ) ) * 6380 desc limit 10
如果有什么事情让你感到恐惧或者兴奋,那就去做吧!