// 查询附近50km的信息
$longitude = '113.2425';
$latitude= '23.16993';
$point = $this->returnSquarePoint($longitude, $latitude, 50000); // 得到四个点
// sql语句查询组合
$where = ' latitude > ' . $point['minLat'] . ' AND latitude < ' . $point['maxLat'];
$where .= ' AND longitude > ' . $point['minLon'] . ' AND longitude < ' . $point['maxLon'];// 查询距离
$distance = $this->getDistance('23.16993', '23.15564', '113.2425', '113.221893');/*** @param $lng float 经度* @param $lat float 纬度* @param $distance float 该点所在圆的半径,该圆与此正方形内切,默认值为单位米* @return array 正方形的四个点的经纬度坐标*/
private function returnSquarePoint($lng, $lat, $distance)
{$PI = 3.14159265;$longitude = $lng;$latitude = $lat;$degree = (24901 * 1609) / 360.0;$raidusMile = $distance;$dpmLat = 1 / $degree;$radiusLat = $dpmLat * $raidusMile;$minLat = $latitude - $radiusLat;       //拿到最小纬度$maxLat = $latitude + $radiusLat;       //拿到最大纬度$mpdLng = $degree * cos($latitude * ($PI / 180));$dpmLng = 1 / $mpdLng;$radiusLng = $dpmLng * $raidusMile;$minLng = $longitude - $radiusLng;     //拿到最小经度$maxLng = $longitude + $radiusLng;     //拿到最大经度$range = array('minLat' => $minLat,'maxLat' => $maxLat,'minLon' => $minLng,'maxLon' => $maxLng);return $range;
}// 根据经纬度计算距离方法
private function getDistance($latitude1, $latitude2, $longitude1, $longitude2)
{$EARTH_RADIUS = 6378.137; // 地球半径(单位km)$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 = abs(round($distance * $EARTH_RADIUS, 2));return $distance;
}

php 根据经纬度获取附近50km的信息,并计算距离相关推荐

  1. 根据经纬度获取用户当前位置信息

    根据上篇文章获取的经纬度获取用户当前的位置信息 //获取用户所在位置信息ADDRESS func getUserAddress() { let latitude : CLLocationDegrees ...

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

    /** *计算某个经纬度的周围某段距离的正方形的四个点 * *@param lng float 经度 *@param lat float 纬度 *@param distance float 该点所在圆 ...

  3. uni-app开发微信小程序获取位置信息并且计算距离

    一.uniapp项目 打开uniapp项目的配置文件manifest.json,选择"源码视图". /* 小程序特有相关 */ "mp-weixin": {&q ...

  4. php 通过坐标获取省市,PHP根据经纬度获取在范围坐标的数据

    PHP根据经纬度获取在范围坐标的数据 PHP根据经纬度获取在范围坐标的数据 //计算范围,可以做搜索用户 function GetRange($lat,$lon,$raidus){ //计算纬度 $d ...

  5. 百度api:根据经纬度获取地理位置信息

    调用百度api,根据经度和纬度获取地理位置信息,返回Json. C#代码: using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Syste ...

  6. java调用腾讯地图根据经纬度获取位置信息

    这是java提交经纬度信息,然后获取该经纬度所在省市区的一个方法,话不多说直接上代码: package com.lmj.util;import net.sf.json.JSONObject; impo ...

  7. 根据百度地图经纬度获取位置信息

    /*** 根据百度地图经纬度获取位置信息 **/ public class BaiduMapUtils {// 百度地图秘钥static String ak = "此处添加你的百度地图秘钥& ...

  8. WEB开发 高德地图应用,初始加载,地图定位,层级变化控制,根据经纬度获取详细地址信息,点击事件以及地图自适应

    1.前台html位置准备 <div id="Sharingrouter">             <div id="container" r ...

  9. 百度地图根据经纬度获取国家、州市等地址相关信息

    这是一个简单的经纬度转换成具体地址信息,支持国际和国内经纬度转换. 效果如下图所示: function xmlToArray2($xml) { // 将XML转为array $array_data = ...

最新文章

  1. codeforces 400D Dima and Bacteria 并查集+floyd
  2. 五大经典算法之回溯法
  3. ThinkPHP 目录结构
  4. Mirantis 收购 Docker EE | 云原生生态周报 Vol. 28
  5. sql不等于0怎么表示_数组真的只能从0开始吗?python表示不同意
  6. python实现归并排序
  7. 2021年呼和浩特高考段考成绩查询,2019届呼和浩特市高三段考成绩排名分析
  8. 适合户外显示中玩耍的游戏
  9. c语言无符号扩展,C语言中的无符号扩展和带符号扩展
  10. 小程序中的多表联合查询
  11. 前端:运用js制作一个万年历程序
  12. OpenCV——相当通俗易懂的SVD奇异值分解
  13. mysql 节假日判断,sql 节假日判断(春节、中秋、国庆、周末等)
  14. openwrt路由器(红米AC2100)折腾全程——多拨、ipv6负载均衡、ipv6 nat6、ddns、端口转发
  15. vue遍历中key详解 (Demo案例)
  16. fx5u怎么与计算机通讯,两个FX5U系列PLC如何用RS485进行通信幻灯片
  17. 在anti-spoofing中,在OULU数据集上求APCER,BPCER,ACER上的一个注意事项
  18. 【秋招纪实录】一篇特别正经的【基恩士】求职经验分享
  19. Flutter中的多选按钮组件Checkbox
  20. 炽热如初 向新而生|ISC2022 HackingClub白帽峰会圆满举办

热门文章

  1. 计算机视觉快速入门一 —— 图像基本操作(二)
  2. Unix/Linux编程:POSIX时钟
  3. references column 'xxx' which is not in SELECT list
  4. NOIP 2016 天天爱跑步
  5. Hbuilder x css样式编写无提醒
  6. 微软IE网络霸业十年回眸
  7. python打开pdf文档
  8. 粽子大战 —— 猜猜谁能赢
  9. JAVA猎才优秀博主分享
  10. MOTT介绍(2)window安装MQTT服务器和client