数据库统计附近餐厅,或附近人

来源:互联网 发布:网络教育有档案吗 编辑:程序博客网 时间:2024/05/02 04:16
用经纬度做索引,
  1. 先粗算,比如把经纬度差一以上的全去掉,where latitude>y-1 and latitude<y+1 and longitude>x-1 and longitude <x+1 and ... ; x,y为当前用户的经纬度。
  2. 再小范围概算,使用类似这样的公式 order by abs(longitude -x)+abs(latitude -y) limit 100;
  3. 最后显示时再精确计算 使用类似这样的公式:(2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*(y-lat)/360),2)+COS(PI()*x/180)* COS(lat * PI()/180)*POW(SIN(PI()*(x-lng)/360),2))))。

前两项在数据库端计算,后一项在应用服务器端计算即可。


如果想在地图上显示,需要做成excell直接从高德的云图后台导入

0 0