/**

* 计算3公里范围内的用户

* @param type $lng string 经度

* @param type $lat string 维度

* @param type $keyword

* @return type

*/

public function actionNearUserlist()

{

$lng = $_GET['lng'];

$lat = $_GET['lat'];

$keyword = $_GET['keyword'] ? $_GET['keyword'] : "";

$half = 6371;

$distance = 20; //3公里

$dlng = 2 * asin(sin($distance / (2 * $half)) / cos(deg2rad($lat)));

$dlng = rad2deg($dlng);

$dlat = $distance / $half;

$dlat = rad2deg($dlat);

$fourpoint = array(

'left-top' => array('lat' => $lat + $dlat,'lng' => $lng - $dlng),

'right-top' => array('lat' => $lat + $dlat,'lng' => $lng + $dlng),

'left-bottom' => array('lat' => $lat - $dlat,'lng' => $lng - $dlng),

'right-bottom' => array('lat' => $lat - $dlat,'lng' => $lng + $dlng)

);

$where = "";

if ($keyword) {

$where = "and a.name like '%" . $keyword . "%'";

}

//从数据库中查询此范围内的网点

$sql = "select uid,mobile,lng,lat

from std_student

where lat!=0 and lng!=0 and lat>" . $fourpoint['right-bottom']['lat'] . " and lat

" and lng>" . $fourpoint['left-top']['lng'] . " and lng

$res = Yii::app()->db->createCommand($sql)->queryAll();

//print_r($res);

$o = new StdStudent();

$point1 = array('lat' => $lng,'long' => $lat);

$distanc = array();

foreach ($res as $k => $v) {

$distanc = $o->getTwoDistance($point1['lat'],$point1['long'],$v['lng'],$v['lat']);

$res[$k]['meters'] = $distanc['meters'];

}

//print_r($res);

if ($res) {

$this->ajaxMessage(0,'附近三公里的用户',$res);

} else

$this->ajaxMessage(-1,'附件用户查询失败');

}

public function getTwoDistance($latitude1,$longitude1,$latitude2,$longitude2)

{

$theta = $longitude1 - $longitude2;

$miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));

$miles = acos($miles);

$miles = rad2deg($miles);

$miles = $miles * 60 * 1.1515;

$feet = $miles * 5280;

$yards = $feet / 3;

$kilometers = $miles * 1.609344;

$meters = $kilometers * 1000;

return compact('miles','feet','yards','kilometers','meters');

}

php计算距离商家距离,php 计算3公里内所以用户的距离相关推荐

  1. 给定经纬度计算距离_根据经纬度计算两点间距离JAVA版

    本文最后更新于2019-08-31,已超过 1年没有更新,如果文章内容.图片或者下载资源失效,请留言反馈,我会及时处理,谢谢! 温馨提示:本文共2518个字,读完预计7分钟. import java. ...

  2. 给定经纬度计算距离_根据经纬度计算两地间的距离

    import java.util.HashMap; import java.util.Map; public class MapDistance { private static double EAR ...

  3. R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离、dist函数计算矩阵中两两元素的曼哈顿距离

    R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离.dist函数计算矩阵中两两元素的曼哈顿距离 目录 R语言计算曼哈顿距离(Manhattan Distance ...

  4. python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value)

    python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value) 目 ...

  5. 【机器学习基础】机器学习中“距离与相似度”计算汇总

    写在前面 涵盖了常用到的距离与相似度计算方式,其中包括欧几里得距离.标准化欧几里得距离.曼哈顿距离.汉明距离.切比雪夫距离.马氏距离.兰氏距离.闵科夫斯基距离.编辑距离.余弦相似度.杰卡德相似度.Di ...

  6. 【机器学习基础】机器学习距离与相似度计算

    写在前面 涵盖了常用到的距离与相似度计算方式,其中包括欧几里得距离.标准化欧几里得距离.曼哈顿距离.汉明距离.切比雪夫距离.马氏距离.兰氏距离.闵科夫斯基距离.编辑距离.余弦相似度.杰卡德相似度.Di ...

  7. 用python实现(1.求输入的百倍,十位,个位数;2.输入a,b和ab间夹角,计算c边长;3.计算两点间曼哈顿距离;4.计算给定数据的几何平均数;5.计算向量的L1和L2范数)

    import math from random import choices from functools import reduce print("1.获取输入整数的百位,十位,个位数(无 ...

  8. [原创]物探小宽线坐标快速生成(平行线坐标互算 、点到线距离计算、两线交点计算等)...

    界面如下: 下载地址:CSDN 功能简介: 主要是解决并简化各项目中坐标(特别是是斜测线坐标方程组)的重复脑残计算问题,降低脑残机率,为懒而生 1.对于斜线.规则线坐标理论快速生成等 2.两线交点的标 ...

  9. 点至直线的距离和垂足点计算

    点至直线的距离和垂足点计算 //点到直线的垂足点 public static Coordinate getFootPoint(Coordinate point, Coordinate pnt1, Co ...

  10. 【数据可视化应用】Python反距离权重(IDW)插值计算及可视化绘制

    本文我们将介绍IDW(反距离加权法(Inverse Distance Weighted)) 插值的Python计算方法及插值结果的可视化绘制过程.主要涉及的知识点如下: IDW简介 自定义Python ...

最新文章

  1. git add --all 为啥不能添加空文件夹,这样设计的初衷是
  2. if test 多条件_VBA语法01:VBA当中的IF语句单一条件判断和多条件判断的使用
  3. ASMCMD 命令详解
  4. MFC Windows编程模型
  5. 第5课 - 线性表的本质
  6. 代码写成这样,老板把我开除了| IT 巨能唠
  7. 广州专科计算机学校录取分数线,广州大专多少分能录取?高考分数170分能上广州大专?...
  8. 消除左递归实验代码_「leetcode」669. 修剪二叉搜索树:【递归】【迭代】详解!
  9. 一起谈.NET技术,Silverlight动态加载DLL
  10. 系统视图和用户视图的区别_读书笔记——数据库系统概论
  11. 40多套在线教育平台系统网站源码知识付费源程序网上教育
  12. 2048小游戏成品源码
  13. PowerPCB转Protel 99的详细教程
  14. 如果U盘中了文件夹隐藏病毒,怎么办?
  15. LNMP架构动态网页
  16. css相对图片加文字,html+css怎么在图片上添加文字
  17. 黑马程序员还收费 兄弟会都是免费的
  18. 支持度、置信度和提升度
  19. 项目的战前、战中与战后
  20. 二叉树的中序遍历 递归与非递归

热门文章

  1. 消防工程师 5.气体灭火系统
  2. 世界一流学科排名计算机科学,2019上海软科世界一流学科排名计算机科学与工程专业排名哥伦比亚大学排名第22...
  3. 开关稳压集成电路电源
  4. OpenCV——图像距离变换
  5. FlowNet 2.0的阅读笔记
  6. 老狗——python求中位数
  7. 全国区号码表(绝对全)
  8. UMTS到LTE的系统架构演进(学习整理:LTE完全指南-LTE、LTE-Advanced、SAE、VolTE和4G移动通信)
  9. 平安夜关于苹果的题目——1705. 吃苹果的最大数目
  10. 如何永久性取消WPS热点推广