成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你如何實現查看附近的人

移動開發
今天分享的教程是教你如何實現附近的人或者其他內容。服務器端用的php。 使用前提請確認你的用戶數據表中是否有存儲用戶的最新坐標和更新時間,最后單獨建一張表來存儲用戶的最新坐標和更新時間。

今天分享的教程是教你如何實現附近的人或者其他內容。服務器端用的php。 使用前提請確認你的用戶數據表中是否有存儲用戶的***坐標和更新時間,***單獨建一張表來存儲用戶的***坐標和更新時間。

在獲取附近的人之前首先要獲取自己的坐標。可以使用baiduLocation來獲取當前用戶的坐標,然后用當前坐標請求服務器返回按照距離排序的用戶數據。

 

  1. apiready = function() { 
  2.     var baiduLocation = api.require('baiduLocation'); 
  3.     baiduLocation.startLocation({ 
  4.         accuracy: '100m'
  5.         filter:1
  6.         autoStop: true 
  7.     }, function(ret, err){ 
  8.         var sta = ret.status; 
  9.         var lat = ret.latitude; 
  10.         var lon = ret.longitude; 
  11.         if(sta){ 
  12.             //成功獲取 
  13.         }else
  14.             //獲取失敗 
  15.         } 
  16.     }); 
  17. }; 

//獲取位置成功后,開發向服務器發送請求

 

  1. api.ajax({ 
  2.     url: 請求地址, 
  3.     method: 'post'
  4.     timeout: 30
  5.     dataType: 'json'
  6.     returnAll:false
  7.     data:{ 
  8.         values: {lat: lat,lon:lon} 
  9.     } 
  10. },function(ret,err){ 
  11.     if (ret) { 
  12.         var urlJson = JSON.stringify(ret); 
  13.         api.alert({msg: urlJson}); 
  14.     }else { 
  15.         api.alert({ 
  16.             msg'錯誤碼:'+err.code+';錯誤信息:'+err.msg+'網絡狀態碼:'+err.statusCode) 
  17.         }); 
  18.     }; 
  19. }); 

其實在APP端代碼非常簡單,主要就是獲取坐標然后發送到服務器,然后服務器根據傳過來的坐標來計算距離,按照距離排序返回數據。那么重點就是服務器端如何實現了

服務器端就以php為例來講一下, 首先獲取有坐標用戶的數據,這個就是foreach一下了,然后根據傳過來的坐標計算距離,下面是foreach里面的一段代碼

  1. 假設 用戶數據為  $data; 
  2.         //foreach之前先組裝下post過來的坐標 
  3.         $lat = $_POST['lat']; 
  4.         $lon = $_POST['lon']; 
  5.         $myLocation = $lon.','.$lat; 
  6.  
  7.     foreach($data as $key=>$v){ 
  8.       //E:對方用戶坐標為: 104.077638,30.673573 
  9.     $v['position'] = "104.077638,30.673573"
  10.       $newData[$key]['distance] = distanceBetween($myLocation,$v['position']); 
  11.  
  12.   ....... 
  13.   //其他用戶數據 

然后再foreach一下新數組根據距離來排序

  1. foreach ($newData as $key => $r) { 
  2.         $distance[] = $r['distance']; 
  3.     } 
  4.  
  5. array_multisort($distance, SORT_ASC, $newData); 
  6. 輸出JSON數組 
  7. echo json_encode($newData); 

注:上面foreach里面有個自定義函數distanceBetween();

這個是用來計算兩個坐標的距離的,代碼如下:

  1. /** 
  2. * 計算兩個坐標之間的距離(米) 
  3. * @param float $fP1Lat 起點(緯度) 
  4. * @param float $fP1Lon 起點(經度) 
  5. * @param float $fP2Lat 終點(緯度) 
  6. * @param float $fP2Lon 終點(經度) 
  7. * @return int 
  8. */ 
  9. function distanceBetween($mylonlat, $findlonlat){ 
  10.         $mylonlat = explode(',', $mylonlat); 
  11.         $findlonlat = explode(',', $findlonlat); 
  12.         list($lng1,$lat1) = $mylonlat; 
  13.         list($lng2,$lat2) = $findlonlat; 
  14.         $EARTH_RADIUS=6378.137
  15.         $PI=3.1415926
  16.         $radLat1 = $lat1 * $PI / 180.0
  17.         $radLat2 = $lat2 * $PI / 180.0
  18.         $a = $radLat1 - $radLat2; 
  19.         $b = ($lng1 * $PI / 180.0) - ($lng2 * $PI / 180.0); 
  20.         $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2))); 
  21.         $s = $s * $EARTH_RADIUS; 
  22.         $s = round($s * 1000); 
  23.         if ($len_type > 1) {  
  24.                 $s /= 1000;  
  25.         }  
  26.         $distance = round($s/1000,2); 
  27.         return $distance; 
責任編輯:倪明 來源: APICloud
相關推薦

2021-12-11 20:20:19

Python算法線性

2023-04-26 12:46:43

DockerSpringKubernetes

2022-07-27 08:16:22

搜索引擎Lucene

2022-12-07 08:42:35

2011-01-06 10:39:25

.NET程序打包

2009-11-09 14:57:37

WCF上傳文件

2011-10-06 14:32:43

2011-01-10 14:41:26

2025-05-07 00:31:30

2011-05-03 15:59:00

黑盒打印機

2021-07-14 09:00:00

JavaFX開發應用

2020-05-15 08:07:33

JWT登錄單點

2021-03-12 10:01:24

JavaScript 前端表單驗證

2021-11-09 06:55:03

水印圖像開發

2010-07-06 09:43:57

搭建私有云

2010-07-06 09:38:51

搭建私有云

2011-02-22 13:46:27

微軟SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中斷喚醒系統Linux 系統

2011-04-21 10:32:44

MySQL雙機同步
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲免费视频网址 | 午夜精品一区二区三区免费视频 | 欧美日韩视频在线第一区 | 欧美日韩一区二区在线 | 天天综合久久 | 国产高清免费视频 | 欧美日韩中文在线 | 中文字幕乱码一区二区三区 | 免费一级黄 | 久久宗合色 | 免费在线成人 | 91国自产| 中文字幕av一区二区三区 | 二区在线观看 | 国产9久| 色综合天天综合网国产成人网 | 一级片aaa| 亚洲激情视频在线 | 少妇无套高潮一二三区 | 亚洲精品国产一区 | www.激情.com| 欧美亚洲一区二区三区 | 国产91精品久久久久久久网曝门 | www午夜视频 | www.国产精品 | 91精品国产一区 | 欧美综合在线视频 | 日韩在线免费视频 | 免费在线日韩 | 草草视频在线播放 | 婷婷激情在线 | 久久精品国产久精国产 | 精品99爱视频在线观看 | 久久tv在线观看 | 久久青青| 国产乡下妇女做爰 | 亚洲精品免费在线观看 | 精品成人av| 亚洲国产精品99久久久久久久久 | 91精品福利 | av网站观看|