PHP 计算经纬度坐标的周围某段距离的正方形的四个点及计算两个坐标点的距离

【系统架构设计师】2025年下半年真题论文回忆版及写作要点 本文摘要围绕云原生数据库、性能测试、无服务器架构和秒杀场景等关键技术进行论述。云原生数据库通过容器化、微服务和自动化运维实现弹性扩展;性能测试需要规划测试场景并关注响应时间等关键指标;无服务器架构以事件驱动为核心,简化开发流程;秒杀场景需组合运用扩容、缓存、限流等技术应对高并发。这些技术方案为构建现代高可用系统提供了重要参考。 阅读详情

 1.计算某个经纬度的周围某段距离的正方形的四个点

/**
 *计算某个经纬度的周围某段距离的正方形的四个点
 *@param lng float 经度
 *@param lat float 纬度
 *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米
 *@return array 正方形的四个点的经纬度坐标
 */
function returnSquarePoint($lng, $lat, $distance = 0.5)
{
	$earthdata=6371;//地球半径,平均半径为6371km
	$dlng = 2 * asin(sin($distance / (2 * $earthdata)) / cos(deg2rad($lat)));
	$dlng = rad2deg($dlng);
	$dlat = $distance/$earthdata;
	$dlat = rad2deg($dlat);
	$data=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)
	);
	return $data;
}
//调用
$lng = '121.437799';
$lat = '31.243208';
$point = returnSquarePoint($lng,$lat);
print_r($point);

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

//从数据库中查询此范围内的网点
$sql = "select uid,mobile,lng,lat from user 
        where lat!=0 and lng!=0 and 
        lat>" . $point['right_bottom']['lat'] . " and 
        lat<" . $point['left_top']['lat'] . " and 
        lng>" . $point['left_top']['lng'] . " and 
        lng<" . $point['right_bottom']['lng'];

3.计算两个坐标的距离

/**
 * 计算两个坐标的距离
 * @param $lng1, $lng2 经度
 * @param $lat1, $lat2 纬度
 * @param int $unit 单位 1:米 2:千米
 * @param int $decimal 精度 保留小数位数
 */
function getDistance($lng1, $lat1, $lng2, $lat2, $unit = 1, $decimal = 2)
{
    $earthdata = 6371;//地球半径,平均半径为6371km
    // 将角度转为狐度
    $radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
    $radLat2 = deg2rad($lat2);
    $radLng1 = deg2rad($lng1);
    $radLng2 = deg2rad($lng2);
    $dlat    = $radLat1 - $radLat2;
    $dlng    = $radLng1 - $radLng2;
    $length  = 2 * asin(sqrt(pow(sin($dlat / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($dlng / 2), 2))) * $earthdata*1000;

    if ($unit==2) {
        $length /= 1000;
    }
    $length = round($length, $decimal);
    return $length;
}

//调用
print_r(getDistance(120.1946550000,30.1852870000,113.9441590000,22.5342250000,2));

 

相机标定(六)—— 张正友标定法 相机标定一、相机标定的目的1. 相机的成像过程2. 相机标定的目的3. 畸变与畸变矫正二、张正友标定法简介三、标定相机内外参1. 求解内参和外参的积2. 求解内参矩阵3. 求解外参矩阵四、标定相机的畸变参数五、L-M算法参数优化六、相机标定的步骤七、源代码 一、相机标定的目的 1. 相机的成像过程 2. 相机标定的目的 3. 畸变与畸变矫正 二、张正友标定法简介 三、标定相机内外参 1. 求解内参和外参的积 2. 求解内参矩阵 3. 求解外参矩阵 四、标定相机的畸变参数 五、L-M算法参数优化 六、相机 阅读详情

相关推荐

海康视觉通讯配置

本文介绍了海康通讯管理中TCP和Modbus协议的配置方法。TCP通讯时,视觉系统作为服务器接收PLC客户端发送的触发信号,需注意十进制与十六进制字符串的转换。Modbus配置需填写PLC的IP地址和寄存器首地址,并预先定义整型变量。TCP通讯需开启16进制发送模式以避免数据格式问题。文章重点说明了不同通讯方式下的数据格式转换和参数设置要点。

A567852的博客 2243

根据两点间的经纬度计算距离 和 计算某个经纬度的周围某段距离的正方形的四个点,以及计算某个经纬度的周围某段距离的正方形北东南西四边位置和坐标系转换

/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function dr_distance($lat1, $lng1, $lat2, $lng2, $mark = '米,千米') { $earthRadius = 6367000; //近似地球半径(米) // 将...

weixin_43486493的博客 696

伺服驱动器485通信

485通信使用方法,485通信在上位机和伺服驱动器之间的应用,根据需要驱动电机旋转。

haipi511715316的博客 1万+

记录两个函数--1.计算某个经纬度的周围某段距离的正方形的四个点。2.根据两点间的经纬度计算距离...

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33834628的博客 270

UG二次开发避坑指南:如何正确配置Python环境让NXOpen脚本跑起来?

本文详细介绍了UG/NX二次开发中Python环境配置的全流程与NXOpen脚本调试技巧,帮助开发者避开常见陷阱。从NXOpen架构解析到Python解释器版本匹配,再到环境变量设置与路径问题处理,提供了一套经过验证的配置方案,确保脚本顺利运行。

weixin_33859135的博客 448

手把手教你用FreeModbus RTU协议栈实现STM32与PLC通信(附Keil工程)

本文详细介绍了如何使用FreeModbus RTU协议栈在STM32上实现与PLC的工业通信。从环境搭建、工程配置到关键移植接口实现,提供了Keil工程模板和调试技巧,帮助开发者快速掌握Modbus RTU通信技术,适用于工业自动化领域的设备间通信需求。

weixin_42549037的博客 418

计算某个经纬度的周围某段距离的正方形的四个点

/** * 计算某个经纬度的周围某段距离的正方形的四个点 * * @param * lng float 经度 * @param * lat float 纬度 * @param * distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米 * @retur...

kevin 1034

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

根据坐标点,半径,角度,求出以坐标点为中心的正方形四顶点

//实现代码 @param longitude 经度 @param latitude 纬度 @param dis 半径/km public static List<Point2D> getPoiRange(double longitude,double latitude,double dis){ List<Point2D> points = new ArrayList<>(); //angles为圆内切正方形的四个点所在角度 List<Integer&

weixin_61431461的博客 647

C# 调用halcon中visualize_object_model_3d显示点云

3.1 判断线程是否为空,如果为空,则新创建,如果不为空,则中断线程,清空窗口后再次执行创建操作3.2 创建:调用show()方法实例化显示类的对象,传入显示参数,将线程testvisual 绑定 在 类对象的action方法上(此处action方法内部,只调用了visualize_object_model_3d算子)3.3 启动线程。

weixin_42362219的博客 1402

YoloV8改进策略:主干网络篇|MobileNetV4主干替换YoloV8的BackBone(独家原创)

今年,轻量级王者MobileNetV4闪亮登场!在我们这篇文章里,我们把MobileNetV4加入到了YoloV8中,替换原有的BackBone。哈哈,你猜怎么着?效果超赞!文章里详细记录了改进过程,给那些正在为创新点子发愁的小伙伴们提供了满满的灵感。嘿,想要发表关于轻量级改进的论文?这篇文章绝对是你的首选参考!

m0_47867638的博客 3191

Cesium坐标转换:根据两个坐标点(坐标点a、坐标点b)的经纬度,计算a点和b点的角度

计算a点和b点的角度(偏行角:逆时针)  /** * 计算a点和b点的角度(偏行角) * @param lng_a a点经度 * @param lat_a a点维度 * @param lng_b b点经度 * @param lat_b b点维度 * @returns 角度 */functio...

sinat_38818576的博客 3426

ArcMap|时空地理加权回归(GTWR)

ArcGIS的GTWR插件下载地址:https://www.researchgate.net/publication/329518786_GTWR_ADDIN_Valid_till_Dec_31_2022 更详细的操作参考: https://www.bilibili.com/video/BV1fR4y1M7xB?spm_id_from=333.999.0.0 https://blog.youkuaiyun.com/weixin_40008135/article/details/112693520 双击“GTWR_Be

个人学习笔记 1万+

PHP通过计算经纬度获取附近的数据信息

/** *计算某个经纬度的周围某段距离的正方形的四个点 * *@param lng float 经度 *@param lat float 纬度 *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米 *@return array 正方形的四个点的经纬度坐标 */ function returnSquarePoint($lng, $lat,$dist...

Quan的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PHP 经纬度相关计算 坐标点之间的距离

【代码】PHP 经纬度相关计算 坐标点之间的距离。

teng_liang的博客 695

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)

最近做一个项目:需要查询一个站点(已知该站点经纬度)500米范围内的其它站点。所以,我首先想到的是,对每条记录,去进行遍历,跟数据库中的每一个点进行距离计算,当距离小于500米时,认为匹配。这样做确实能够得到结果,但是效率极其低下,因为每条记录都要去循环匹配n条数据,其消耗的时间可想而知。 于是我就想到一个先过滤出大概的经纬度范围再进行计算。比方说正方形的四个点,于是我在网上搜索,意外的,查询到...

weixin_39179428的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

php中getdistance函数_PHP通过经纬坐标计算两个地址的距离

* *@param lng1,lng2 经度* *@param lat1,lat2 纬度* *@return float 距离,单位米* *@author www.Alixixi.com **/function getdistance($lng1,$lat1,$lng2,$lat2){ //将角度转为狐度$radLat1=deg2rad($lat1);//deg2rad()函数将角度转换...

weixin_39867125的博客 470

php mysql 经纬度_PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–算法

几个星期以前的一个项目,需求是根据当前用户上传的经纬度坐标,在数据库几十万万条数据中查询出符合“周围3公里范围内”条件的坐标点。Mysql本身是支持空间索引的,但是在5.X版本中取消了Distance()和Related(),无法使用空间的距离函数去直接查询距离在一定范围内的点。所以,我首先想到的是,对每条数据去进行遍历,跟数据库中的每个点进行距离计算,当距离小于3公里时候,认为匹配成功。经测试,...

weixin_32375369的博客 332

mysql 周边x公里_PHP Mysql 根据一个给定经纬度的点,进行附近地点查询–算法

几个星期以前的一个项目,需求是根据当前用户上传的经纬度坐标,在数据库几十万万条数据中查询出符合“周围3公里范围内”条件的坐标点。Mysql本身是支持空间索引的,但是在5.X版本中取消了Distance()和Related(),无法使用空间的距离函数去直接查询距离在一定范围内的点。所以,我首先想到的是,对每条数据去进行遍历,跟数据库中的每个点进行距离计算,当距离小于3公里时候,认为匹配成功。经测试,...

weixin_27051161的博客 382

mysql计算某个地点地区_PHP Mysql 根据一个给定经纬度的点,进行附近地点查询–算法 转载...

几个星期以前的一个项目,需求是根据当前用户上传的经纬度坐标,在数据库几十万万条数据中查询出符合“周围3公里范围内”条件的坐标点。Mysql本身是支持空间索引的,但是在5.X版本中取消了Distance()和Related(),无法使用空间的距离函数去直接查询距离在一定范围内的点。所以,我首先想到的是,对每条数据去进行遍历,跟数据库中的每个点进行距离计算,当距离小于3公里时候,认为匹配成功。经测试,...

weixin_33768246的博客 259

PHP MYSQL 搜索周边坐标,并计算两个点之间的距离

搜索附近地点,例如,坐标(39.91, 116.37)附近500米内的人,首先算出“给定坐标附近500米”这个范围的坐标范围。 虽然它是个圆,但我们可以先求出该圆的外接正方形,然后拿正方形的经纬度范围去搜索数据库。红色部分为要求的搜索范围,绿色部分为实际搜索范围。 /** * 获取周围坐标 * Enter description here ... * @param...

weixin_34419326的博客 102

php查询数据范围内,通过当前位置查询周边500米范围内的数据

define(EARTH_RADIUS, 6371);//地球半径,平均半径为6371km/***计算某个经纬度的周围某段距离的正方形的四个点**@param lng float 经度*@param lat float 纬度*@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米*array 正方形的四个点的经纬度坐标*/function return...

weixin_32508109的博客 777

PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–算法

  几个星期以前的一个项目,需求是根据当前用户上传的经纬度坐标,在数据库几十万万条数据中查询出符合“周围3公里范围内”条件的坐标点。   Mysql本身是支持空间索引的,但是在5.X版本中取消了Distance()和Related(),无法使用空间的距离函数去直接查询距离在一定范围内的点。所以,我首先想到的是,对每条数据去进行遍历,跟数据库中的每个点进行距离计算,当距离小于3公里时候,认为匹配成...

weixin_34293902的博客 146

根据自动定位获取范围内最近的信息

以前的一个项目,需求是根据当前用户上传的经纬度坐标,在数据库几十万万条数据中查询出符合“周围3公里范围内”条件的坐标点。  所以,我首先想到的是,对每条数据去进行遍历,跟数据库中的每个点进行距离计算,当距离小于3公里时候,认为匹配成功。经测试,这样做确实能得到结果,但是效率极其低下,因为每条数据都得去和数据库中的几十万条数据进行比对,其耗费的时间可想而知。对于这种情况,是用户所无法忍受的。  后来...

private_note的博客 2297

在地图计算圆的外接正方形,并返回左上顶点和右下顶点(java、javascript)

javascript: /** * @param raidus 单位米 * return minLat,minLng,maxLat,maxLng */ this.getCircleBround=function(lon,lat,raidus){ var PI = 3.14159265; var EARTH_RADIUS = 6378

冷月宫主的专栏 2565

探秘GeoHash:高效地理位置检索的秘密武器

探秘GeoHash:高效地理位置检索的秘密武器 随着移动互联网的发展,位置服务(LBS)已经深入人们的生活,无论是社交应用中的"签到"功能,还是日常生活中的导航与附近搜索,都离不开对地理位置信息的处理。那么,在海量的经纬度数据中快速找到附近的人或物,究竟如何实现?答案就在GeoHash——一种基于坐标点进行编码的技术。 项目介绍 GeoHash是一个开源的PHP库,它采用了一种...

gitblog_00078的博客 486
上一篇: Thinkphp 二级域名部署vue项目
下一篇: PHP 获取客户端IP地址
咯拉咯啦
博客等级 码龄14年 17粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咯拉咯啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值