$branchInfo=Db::name('Branch')->where('b_id','250')->find();
$map['p.cate_id']=array('eq',5);
$map['b.lng']=array('neq','');
$map['b.lat']=array('neq','');
$map['b.b_id']=array('neq',250);
$branchGoodsList=Db::name('BranchStock')->alias('s')->field("s.s_id,s.s_stock,p.p_name,p.p_code,p.p_size,p.p_color,b.*,(6378.138 * 2 * asin(sqrt(pow(sin((lat * pi() / 180 - ".$branchInfo['lat']." * pi() / 180) / 2),2) + cos(lat * pi() / 180) * cos(".$branchInfo['lat']." * pi() / 180) * pow(sin((lng * pi() / 180 - ".$branchInfo['lng']." * pi() / 180) / 2),2))) * 1000) as distance")->join('think_products p','s.g_id=p.p_id','LEFT')->join('think_branch b','s.b_id=b.b_id','LEFT')->group('s.b_id')->where($map)->order('distance')->select();
foreach($branchGoodsList as $k=>$v){
$branchGoodsList[$k]['distance']=round($v['distance']/1000,2).'Km';
}

利用mysql 计算两点间具体  用百度地图接口计算距离太慢了  还有次数限制 因此改装了sql

最新文章

  1. Unity3D热更新全书-下载 唯一的一篇
  2. Java计时器Timer和TimerTask用法
  3. 防抖(Debounce)与节流( throttle)区别
  4. 3D开发的基本知识
  5. cocos2d-x 将cocosbuilder输出文件映射成对象的原理
  6. ROR入门之旅
  7. some knowledge t
  8. Linux 网络编程基础(4) -- Ping 的C代码实现
  9. redmine使用汇总redmine软件工程过程
  10. Fiddler的安装设置
  11. SVN的安装以及和eclipse的结合使用
  12. Windows平台下的多线程编程
  13. python在linux中用setproctitle自定义进程名
  14. hml页面转化成图片
  15. python socket 函数介绍
  16. Subarray Sum & Maximum Size Subarray Sum Equals K && Subarray Sum Equals K
  17. ldap集成jenkins
  18. Hadoop HBase概念学习系列之HLog(二)
  19. jQuery调用Asp.Net后台方法
  20. Python之Subprocess模块

热门文章

  1. Redis 集群方案介绍
  2. C#:进程、线程、应用程序域(AppDomain)与上下文分析
  3. Java LinkedList 和 ArrayList
  4. Windows 10 修改系统环境变量后,CMD生效,Powershell未生效
  5. Rancher的安装配置
  6. 大白话系列之C#委托与事件讲解(序言)
  7. 给iOS开发新手送点福利,简述UITextField的属性和用法
  8. 像素(PX)转其它长度单位(mm、cm...)
  9. urllib2模块的基本使用(四)
  10. MPI 并行奇偶交换排序 + 集合通信函数 Sendrecv() Sendvecv_replace()