亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

搜索附近的人PHP實現代碼

2024-05-05 00:02:20
字體:
來源:轉載
供稿:網友

本文實例為大家分享了PHP實現搜索附近的人具體代碼,供大家參考,具體內容如下

實現思路:

首先,我們應該這樣想: 既然我們知道了用戶當前位置的經緯度,又知道我們將要搜索的范圍,我們可不可以計算出一個范圍 ?也就是說,根據一個中心點和半徑,計算出符合條件的經緯度的最大值和最小值 。

具體實現:

那么到此,想要獨立思考完成的小伙伴可以不要繼續往下看了。
上面我們提到該功能的一個實現原理,接下來我們就講解一下具體的實現步驟。
我們先聲明一個函數,用作計算經緯度的范圍:

/** * 根據經緯度和半徑計算出范圍 * @param string $lat 緯度 * @param String $lng 經度 * @param float $radius 半徑 * @return Array 范圍數組 */private function calcScope($lat, $lng, $radius) {  $degree = (24901*1609)/360.0;  $dpmLat = 1/$degree;  $radiusLat = $dpmLat*$radius;  $minLat = $lat - $radiusLat;    // 最小緯度  $maxLat = $lat + $radiusLat;    // 最大緯度  $mpdLng = $degree*cos($lat * (PI/180));  $dpmLng = 1 / $mpdLng;  $radiusLng = $dpmLng*$radius;  $minLng = $lng - $radiusLng;   // 最小經度  $maxLng = $lng + $radiusLng;   // 最大經度  /** 返回范圍數組 */  $scope = array(    'minLat'  => $minLat,    'maxLat'  => $maxLat,    'minLng'  => $minLng,    'maxLng'  => $maxLng    );  return $scope;}

返回的數組中包含了在 $radius 范圍內,符合條件的最大最小經緯度。
既然我們已經獲取到了范圍,那么我們就可以開始從數據庫中查找所有在這個經緯度范圍內符合條件的記錄:

/** * 根據經緯度和半徑查詢在此范圍內的所有的電站 * @param String $lat  緯度 * @param String $lng  經度 * @param float $radius 半徑 * @return Array     計算出來的結果 */public function searchByLatAndLng($lat, $lng, $radius) {  $scope = $this->calcScope($lat, $lng, $radius);   // 調用范圍計算函數,獲取最大最小經緯度  /** 查詢經緯度在 $radius 范圍內的電站的詳細地址 */  $sql = 'SELECT `字段` FROM `表名` WHERE `Latitude` < '.$scope['maxLat'].' and `Latitude` > '.$scope['minLat'].' and `Longitude` < '.$scope['maxLng'].' and `Longitude` > '.$scope['minLng'];  $stmt = self::$db->query($sql);  $res = $stmt->fetchAll(PDO::FETCH_ASSOC);    // 獲取查詢結果并返回  return $res;}

擴展:

直到現在,我們已經知道了如何計算出附近的人,但在實際需求中,我們往往需要計算出每一個人與當前中心點的實際距離。
接著,我們再來看一個方法:

/** * 獲取兩個經緯度之間的距離 * @param string $lat1 緯一 * @param String $lng1 經一 * @param String $lat2 緯二 * @param String $lng2 經二 * @return float 返回兩點之間的距離 */public function calcDistance($lat1, $lng1, $lat2, $lng2) {  /** 轉換數據類型為 double */  $lat1 = doubleval($lat1);  $lng1 = doubleval($lng1);  $lat2 = doubleval($lat2);  $lng2 = doubleval($lng2);  /** 以下算法是 Google 出來的,與大多數經緯度計算工具結果一致 */  $theta = $lng1 - $lng2;  $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));  $dist = acos($dist);  $dist = rad2deg($dist);  $miles = $dist * 60 * 1.1515;  return ($miles * 1.609344);}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频一二三| 久久视频免费在线播放| 欧美成人精品在线视频| 国产精品午夜国产小视频| 久久91超碰青草是什么| 亚洲第一精品夜夜躁人人躁| 亚洲三级黄色在线观看| 97视频在线播放| 欧美乱人伦中文字幕在线| 91麻豆桃色免费看| 最近2019年手机中文字幕| 2019国产精品自在线拍国产不卡| 国产999精品| 成人精品一区二区三区| 中文字幕一区日韩电影| 国产亚洲福利一区| 国产精品久久久久久久美男| 欧美性猛交xxxx| 国产精品久久久久久av福利软件| 欧美亚洲国产另类| 亚洲精品不卡在线| 91久久久久久久久久| 激情av一区二区| 欧美野外猛男的大粗鳮| 亚洲大胆人体视频| 日韩精品中文字幕视频在线| 国产精品成人va在线观看| 欧美性猛交xxxx免费看漫画| 一区二区国产精品视频| 欧洲精品在线视频| 国产一区二区丝袜| 亚洲第一精品久久忘忧草社区| 国产成+人+综合+亚洲欧洲| 国产97在线|日韩| 国产精品香蕉在线观看| 欧美成人午夜免费视在线看片| 成人黄色av播放免费| 欧美电影第一页| 国产成人精品视频在线| 欧美日韩另类字幕中文| 亚洲一区av在线播放| 成人免费观看49www在线观看| 精品成人乱色一区二区| 91精品国产高清久久久久久91| 亚洲成人a级网| 午夜精品久久久久久久男人的天堂| 亚洲天堂av女优| 欧美贵妇videos办公室| 久久久久久久久电影| www.日韩欧美| 国产精品高潮在线| 欧美黑人性猛交| 欧美亚洲视频在线看网址| 久久成人18免费网站| 精品福利在线视频| 国内精品久久久| 日韩大胆人体377p| 国产精品日韩在线观看| 91中文字幕在线| 国产精品亚洲片夜色在线| 久久影院在线观看| 亚洲欧美www| 欧美激情国产精品| 国内精品在线一区| 国产精品久久一区| 成人有码在线视频| 色综合久久88色综合天天看泰| 午夜精品久久久久久久久久久久| 久久6精品影院| xx视频.9999.com| 成人福利视频在线观看| 日韩精品视频在线观看免费| 久久精品99无色码中文字幕| 亚洲精品成a人在线观看| 亚洲成人久久网| 国产视频综合在线| 国产欧美一区二区白浆黑人| 亚洲欧美在线一区二区| 亚洲精品不卡在线| 欧美成人一二三| 欧美黑人极品猛少妇色xxxxx| 国产91精品久久久久| 国产精品成人一区| 日韩中文字幕久久| 少妇高潮久久久久久潘金莲| 亚洲一区二区免费| 国产乱人伦真实精品视频| 欧美高清在线视频观看不卡| 欧美精品videossex性护士| 国产精品亚洲一区二区三区| 中文字幕日韩综合av| 欧美国产视频一区二区| 青青草原一区二区| 国产精品欧美日韩久久| 国产欧美精品日韩精品| 亚洲国产精彩中文乱码av在线播放| 97香蕉超级碰碰久久免费软件| 欧美色另类天堂2015| 视频一区视频二区国产精品| 久久久久国产一区二区三区| 亚洲欧美激情四射在线日| www国产精品com| 美女国内精品自产拍在线播放| 日韩精品视频免费专区在线播放| 有码中文亚洲精品| 亚洲一区www| 欧美精品激情视频| 性色av一区二区咪爱| 久久激情视频免费观看| 国产亚洲精品一区二555| 欧美一级大片在线观看| 98精品国产高清在线xxxx天堂| 亚洲级视频在线观看免费1级| 最近免费中文字幕视频2019| 精品亚洲va在线va天堂资源站| 青青青国产精品一区二区| 亚洲国产小视频| 激情av一区二区| 久久夜色精品国产| 欧美一级大片在线观看| 欧美成人国产va精品日本一级| 日韩欧美亚洲范冰冰与中字| 粗暴蹂躏中文一区二区三区| 国产精品午夜一区二区欲梦| 日韩精品免费在线观看| 亚洲国产私拍精品国模在线观看| 亚洲天堂男人的天堂| 91精品国产电影| 国产亚洲精品久久久久动| 欧美精品videossex性护士| 亚洲精品大尺度| 日韩美女免费观看| 国产成人综合亚洲| 亚洲免费视频在线观看| 国产精品久久久久高潮| 国产一区二区三区18| 国模精品视频一区二区| 清纯唯美日韩制服另类| 日日噜噜噜夜夜爽亚洲精品| 福利视频一区二区| 国产精品三级美女白浆呻吟| 国产精品久久久久久网站| 亚洲天堂免费在线| 国产一区视频在线播放| 九九热精品视频在线播放| 自拍偷拍亚洲精品| 92看片淫黄大片欧美看国产片| 亚洲直播在线一区| 最近更新的2019中文字幕| 国产91精品久久久久久| 国产精品女人久久久久久| 亚洲精品久久久久| 欧美精品久久久久久久| 亚洲久久久久久久久久久| 91精品国产自产在线观看永久| 中文字幕免费精品一区| 欧美国产精品人人做人人爱| 日韩视频免费在线| 久久久久女教师免费一区| 日韩久久免费视频| 欧美一级片一区| 日韩经典一区二区三区| 91精品国产色综合久久不卡98| 在线视频日本亚洲性|