php 距离排序,php 附近由近到远排序查询

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

//获取经纬度 默认值为0.5千米

function returnSquarePoint($lng, $lat, $distance = 0.5)

{

define('EARTH_RADIUS', '6371'); //地球半径,平均半径为6371km

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

$dlng = rad2deg($dlng);

$dlat = $distance / EARTH_RADIUS;

$dlat = rad2deg($dlat);

return 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),

);

}

/**

* 计算两点地理坐标之间的距离

* @param Decimal $longitude1 起点经度

* @param Decimal $latitude1 起点纬度

* @param Decimal $longitude2 终点经度

* @param Decimal $latitude2 终点纬度

* @param Int $unit 单位 1:米 2:公里

* @param Int $decimal 精度 保留小数位数

* @return Decimal

*/

function getDistance($longitude1, $latitude1, $longitude2, $latitude2, $unit=2, $decimal=2){

$EARTH_RADIUS = 6370.996; // 地球半径系数

$PI = 3.1415926;

$radLat1 = $latitude1 * $PI / 180.0;

$radLat2 = $latitude2 * $PI / 180.0;

$radLng1 = $longitude1 * $PI / 180.0;

$radLng2 = $longitude2 * $PI /180.0;

$a = $radLat1 - $radLat2;

$b = $radLng1 - $radLng2;

$distance = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));

$distance = $distance * $EARTH_RADIUS * 1000;

if($unit==2){

$distance = $distance / 1000;

}

return round($distance, $decimal);

}

//$lng = 117.072157 $lat= 36.187136

$squares = returnSquarePoint($lng, $lat);

$where = "lat<>0 and lat >= {$squares['right-bottom']['lat']} and lat<={$squares['left-top']['lat']} and lng>={$squares['left-top']['lng']} and

lng<={$squares['right-bottom']['lng']} and user_status !=0 and is_auth=1 and id !=".$uid;

$field = "*";

$order = "SQRT((".$lng ."- lng)*(".$lng ."- lng)+(".$lat."- lat )*(".$lat."- lat))";

$list = db('user')->where($where)->order($order)->page($page)->select();

$list = emcee_complete($list);

foreach ($list as &$v) {

//计算距离

$v['distance']=getDistance($lng, $lat, $v['lng'], $v['lat'], $unit=2, $decimal=2);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

土地利用覆被变化的概念_欠压实概念极其荒谬

●李传亮地表疏松的沉积物&#xff0c;孔隙度极高&#xff0c;有时可高达80%以上&#xff0c;但随着埋藏深度的加大&#xff0c;在上覆压力的作用下&#xff0c;其排列方式不断由松散排列趋于致密排列&#xff0c;同时伴随有孔隙度的大幅度减小&#xff0c;此即岩石的压实阶段&…

java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

java方法带参数返回值在当前的系列文章中&#xff0c;我正在致力于减少调用Java方法和构造函数所需的参数数量&#xff0c;到目前为止&#xff0c;我一直专注于直接影响参数本身的方法&#xff08; 自定义类型 &#xff0c; 参数对象 &#xff0c; 构建器模式 &#xff0c; 方法…

java足球游戏毕业设计,java毕业设计_springboot框架的校园足球管理平台

今天介绍一个java毕设题目, 题目内容为springboot框架的校园足球管理平台, 是一个采用b/s结构的javaweb项目, 采用java语言编写开发工具eclipse, 项目框架jspspringbootmybatis, 校园足球管理平台的信息存储于mysql中, 并基于mybatis进行了orm封装, 该校园足球管理平台系统通过…

python 爬取贝壳网小区名称_用Python爬取贝壳网新房和二手房数据

[Python] 纯文本查看 复制代码import randomimport requestsfrom bs4 import BeautifulSoupimport reimport mathfrom lxml import etreeUSER_AGENTS ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)&q…

Java 11功能– Java飞行记录器

在本文中&#xff0c;我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分。之前&#xff0c;它是商业功能之一。 但是&#xff0c;对于带有JEP 328的 Java 11&#xff0c;它是开源的。 Java Flight Recorder将OS和JVM事件记录到一个文件中&#xff0c;可以使用Jav…

MATLAB slider中的数值,在微信小程序中如何使用slider设置数据值

这篇文章主要介绍了微信小程序使用slider设置数据值及switch开关组件功能,结合实例形式分析了slider组件及switch组件的功能与使用方法,并附带源码供读者下载参考,需要的朋友可以参考下本文实例讲述了微信小程序使用slider设置数据值及switch开关组件功能。分享给大家供大家参考…

qstandarditemmodel 重写data函数后无法实现拖拽_实现类似百度网盘上传的功能

今天写到了上传文件部分&#xff0c;记录一下。前端使用了dropzone.js(用于实现文件上传的JS库)&#xff0c;并对此文件进行了细微修改。说一下思路吧&#xff1a;首先界面长这样&#xff1a;点击上传文件&#xff0c;需要弹出一个对话框&#xff0c;对话框中有支持拖拽文件的文…

逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

本文包括&#xff1a;重要概念逻辑斯蒂回归和线性回归二项逻辑斯谛回归模型逻辑斯蒂回顾与几率模型参数估计多项逻辑斯谛回归其它有关数据分析&#xff0c;机器学习的文章及社群1.重要概念&#xff1a;在正式介绍逻辑斯蒂回归模型之前&#xff0c;需要先对一些基本概念有所了解…

mysql 数据传输 定时,MySQL数据库定时备份的实现方法

1. 创建shell脚本2. 给shell脚本添加执行权限3. 给脚本添加定时任务crontab文件的说明&#xff1a;用户创建的crontab文件中&#xff0c;每一行都代表一项定时任务&#xff0c;每行的每个字段代表一项设置&#xff0c;它的格式每行共分为六个字段&#xff0c;前五段是时间设定字…

python 生意_本周互联网关注(2015515):劳动人民的生意经、python好还是go好

我很喜欢写这种类型的文章&#xff0c;写的也轻松&#xff0c;大家看的也多。性价比高。那么现在继续。一、所谓光辉岁月&#xff0c;不是波澜壮阔的时候&#xff0c;而是无人问津时&#xff0c;你对梦想的坚持。| 陈欧很多人刚开始创业时激情无比高涨&#xff0c;干着干着开始…

mysql空洞数据,Mysql 表空间和 数据页空洞

一、表空间1、表空间&#xff1a; innodb 引擎存储的最高层&#xff1b; 存放所有的数据2、独立表空间&#xff1a;Mysql 版本5.6 后默认开启的单表单空间(1)Innodb 默认存储引擎页的大小为 16K &#xff1b;默认表空间 大小为96k(2)独立表空间 开启方式 innodb_file_per_table…

junit 5测试异常处理_在JUnit中处理异常的3种方式。 选择哪一个?

junit 5测试异常处理在JUnit中&#xff0c;有3种流行的方式来处理测试代码中的异常&#xff1a; 试捕习语 使用JUnit规则 带注解 我们应该使用哪一个&#xff1f;何时使用&#xff1f; 试捕习语 这个习语是最受欢迎的习语之一&#xff0c;因为它已在JUnit 3中使用。 Test…

python网站数据写入mysql_python网络爬虫抓取动态网页并将数据存入数据库MySQL

简述以下的代码是使用python实现的网络爬虫&#xff0c;抓取动态网页 http://hb.qq.com/baoliao/ 。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。以上是网页源码以上是审查网页元素所以此处不能简单的使用正则表达式来获取内容。以…

交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM)

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 交通流预测 | Matlab基于KNN-BiLSTM的交通流预测&#xff08;对比SVR、LSTM、GRU、KNN-LSTM&#xff09; 程序设计 完整程序和数据获取方式&#xff1a;私信博主回复Matlab基于KNN-BiLSTM的交通流预测&#xff08;对…

JMetro“ Metro”选项卡,Java的TreeView和ContextMenu(JavaFX)

我刚刚发布了JMetro的新更新&#xff0c;将版本升级到3.3.0。 在此更新中&#xff0c;您将找到&#xff1a; 新的TreeView Fluent设计系统&#xff08;Metro&#xff09;启发风格&#xff1b; 新的Tabs和TabPane FDS启发风格&#xff1b; 新的上下文菜单采用深色FDS启发的样…

蒙特卡罗计算积分matlab,matlab下二重积分的蒙特卡洛算法

%%monte_carlo_ff.m%被积函数(二重)function ffmonte_carlo_ff(x,y)ffx*y^2;%函数定义处end%%monte_carlo.m%蒙特卡洛计算二重积分function resultmonte_carlo(a,b,c,d,n,m)%先y后x积分&#xff0c;a是x积分下限&#xff0c;b是x积分上限&#xff0c;c是y积分下限&#xff0c;d…

数据挖掘原理与算法_技术分享|大数据挖掘算法之FPGrowth算法

程一舰数据技术处我们常说我们生活在信息时代&#xff0c;实际上&#xff0c;我们更多的还是生活在数据时代。因为从过去到现在累积了大量的数据&#xff0c;对数据的挖掘和分析也仅是从最近几年大数据和人工智能技术的发展而兴起。我们对现有数据价值的利用还远低于数据本身拥…

centos 程序 mysql数据库文件位置,CentOS 更改MySQL数据库目录位置

引言&#xff1a;由于MySQL的数据库太大&#xff0c;默认安装的/var盘已经再也无法容纳新增加的数据&#xff0c;没有办法&#xff0c;只能想办法转移数据的目录。下面我简单整理一下这几天把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql下面具体操作1、首先我们…

neo4j数据浏览器_Neo4j:在Neo4j浏览器的帮助下探索新数据集

neo4j数据浏览器在查看新的Neo4j数据库时&#xff0c;我发现遇到的一件困难就是确定其中包含的数据的结构。 我习惯于关系数据库&#xff0c;在该数据库中您可以轻松获取表列表和外键&#xff0c;以便您将它们相互连接。 传统上&#xff0c;使用Neo4j时很难做到这一点&#x…

mfc中怎么集成文件_怎么把几个pdf合并并打印在一份文件中?

a为什么我们要把pdf文件合并呢&#xff1f;当然我们要知道什么是pdf文件才能进行更多的操作&#xff0c;Pdf是我们许多人都会用到的一种存储文件的格式&#xff0c;它的内容基本是以图像的形式表现&#xff0c;所以我们在播放和打印的时候可以不用担心出现格式错乱的问题。PDF格…