PHP通过计算经纬度获取附近的数据信息
来源:互联网 发布:linux rpm命令 编辑:程序博客网 时间:2024/04/28 06:06
/***计算某个经纬度的周围某段距离的正方形的四个点**@param lng float 经度*@param lat float 纬度*@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米*@return array 正方形的四个点的经纬度坐标*/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));}function getdistance($lng1,$lat1,$lng2,$lat2){//根据经纬度计算距离 单位为公里//将角度转为狐度$radLat1=deg2rad($lat1);$radLat2=deg2rad($lat2);$radLng1=deg2rad($lng1);$radLng2=deg2rad($lng2);$a=$radLat1-$radLat2;//两纬度之差,纬度<90$b=$radLng1-$radLng2;//两经度之差纬度<180$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;return $s;}
函数 returnSquarePoint 是用来获取某个坐标点附近0.5KM之内的正方形的四个点,通过此办法获取附近的面积,并通过此函数组合出所需的SQL语句,如:
$squares = returnSquarePoint($lng, $lat, 100);$condition = "location_x<>0 and location_x>{$squares['right-bottom']['lat']} and location_x<{$squares['left-top']['lat']} and location_y>{$squares['left-top']['lng']} and location_y<{$squares['right-bottom']['lng']}";
函数 getdistance 是根据数据库中经录的坐标点计算两个坐标点之间的距离
1 0
- PHP通过计算经纬度获取附近的数据信息
- 通过经纬度获取附近店铺
- 根据经纬度获取附近的数据、和与当前经纬度的距离
- 根据经纬度获取附近的数据、和与当前经纬度的距离
- 通过经纬度获取地址信息
- 通过经纬度获取地理位置信息
- php通过经纬度获取城市
- php 通过经纬度获取距离
- 通过当前用户的经纬度,查询附近的店铺
- 根据经纬度查找附近的人计算公式
- mysql 通过经纬度查询附近的地点位置
- Android 通过经纬度获取地理位置信息
- 如何通过经纬度获取地址信息?
- Android 通过经纬度获取地理位置信息
- android 通过经纬度获取地址信息
- 如何通过经纬度获取地址信息?
- 如何通过经纬度获取地址信息?
- 百度地图通过经纬度获取地址信息
- 初试jni
- SQL查询月份有多少天(根据变量)
- 关于微信公众平台表情代码的记录
- LeetCode Next Permutation
- 收集的伪静态中经常使用的一些参数解释,如[NC,L,QSA]等
- PHP通过计算经纬度获取附近的数据信息
- 在Windows下搭建Gitlab服务器(二)-不能访问Gitlab的web管理页面
- C# 操作JSON字符串用于与网页中的返回数据进行互动
- PHP 在源码中实现换行使得页面源码更精致美观
- 目前计划---毕业前(2016-6)
- 完全卸载oracle11g步骤
- 黑马程序员--OC自学笔记---06简单电影购票系统
- 比较完善的限制中文输入字长的方法
- phonegap菜鸟入门小结