根據經緯度查詢附近的xxx

2021-02-19 粒子視線

<?php

define('EARTH_RADIUS',6378.137); //地球平均半徑,km

//當前坐標

$lng = 116.441709;

$lat = 39.946158;

/**

 * distance 單位 米

  */

function returnSquarePoint($lng, $lat,$distance = 3000){

$distance = $distance /1000; //換算成km

$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);//deg2rad()函數將角度轉換為弧度

$radLat2=deg2rad($lat2);

$radLng1=deg2rad($lng1);

$radLng2=deg2rad($lng2);

$a=$radLat1-$radLat2;

$b=$radLng1-$radLng2;

$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))* EARTH_RADIUS *1000;

return $s;

}

/**

 * 排序

 */

function array_sort($arr,$keys,$type='asc'){ 

$keysvalue = $new_array = array();

foreach ($arr as $k=>$v){

$keysvalue[$k] = $v[$keys];

}

if($type == 'asc'){

asort($keysvalue);

}else{

arsort($keysvalue);

}

reset($keysvalue);

foreach ($keysvalue as $k=>$v){

$new_array[$k] = $arr[$k];

}

return $new_array; 

//當前坐標3000米範圍內所有商家

$quares = returnSquarePoint($lng,$lat,3000);

mysql_connect('localhost','root','123456');

mysql_select_db('weixin');

mysql_query('set names utf8');

//不要隨意改動經緯度條件查詢,如果需要修改請仔細看清條件判斷

$sql = sprintf("select * from shang where (lng<>0 and lat<>0) and (lng between %s and %s) and (lat between %s and %s) ", 

$quares['left-top']['lng'],$quares['right-bottom']['lng'],$quares['right-bottom']['lat'],$quares['right-top']['lat']);

$query = mysql_query($sql);

$i = 0;

while($row = mysql_fetch_array($query,MYSQL_ASSOC)){

$data[$i] = $row;

$data[$i]['distance'] = getDistance($lng,$lat,$row['lng'],$row['lat']); 

$i++;

}

$data = array_sort($data,'distance','asc'); //由近至遠排序

//$data = array_sort($data,'distance','desc'); //由遠至近排序

var_dump($data);

-

歡迎廣大業內朋友投稿,投稿郵箱:thor.wu@qq.com

相關焦點

  • 方舟生存進化經緯度查詢方法 手機版經緯度
    方舟生存進化怎麼查看經緯?經緯度也就是坐標的意思啦,下面小編就來給大家講解下查看經緯坐標的方法,還不會的就一起來看看吧。
  • 手機高德地圖在哪裡看經緯度 怎麼查經緯度坐標方法
    貌似在手機客戶端裡面看不到這個經緯度,不過我們可以藉助手機網頁來進行查詢;  具體的方法我們可以先來打開手機瀏覽器,然後進入到高德地圖官網,對著你想要查看經緯度的地點右鍵,再點擊【這是哪兒】; 原標題:手機高德地圖怎麼查經緯度 查經緯度坐標方法 責任編輯:曾少林
  • 報上經緯度就能寄郵件 快遞業革命性技術誕生
    網絡上流行語「報上你的經緯度」不再是調侃說法,而將成為未來普通人寄郵件的方法——通過手機GPS等方式獲得郵件收寄位置的經緯度坐標,分揀中心掃描郵件條碼後進行全自動分揀。這種被稱為「經緯度坐標郵件分揀法」的技術,極大地提高配送效率,同時降低企業成本,還能防止客戶信息洩露,基於這項技術還可以催生第三方服務平臺,改變大大小小快遞企業各自經營的分揀模式。這種技術已經提交了PCT國際專利申請。
  • 電腦如何實現查找「附近的人」?
    當我們打開微信的附近的人可以看到附近的朋友,當我們打開美團附近的商家可以查找附近的飯店、影院等等。所有這一切都離不開一個功能:基於LBS的「附近的」功能,那計算機是如何實現這種功能的?本文討論一下其原理。
  • IM裡「附近的人」功能實現原理是什麼?如何高效率地實現它?
    1、引言基本上以陌生人社交為主的IM產品裡,都會增加「附近的人」、「附近的xxx」這種以LBS(地理位置)為導向的產品特色(微信這個熟人社交產品裡為啥也有「附近的人」?這當然是歷史原因了,微信當初還不是想藉此引流嘛。。。)
  • 手機一鍵查詢地鐵站擁擠度(附截圖)
    其中,將首次發布車站擁擠度信息,乘客出門前就可用手機查詢附近地鐵站擁擠度,選擇舒適度最高的車站上車,這在國內外尚無先例。北京地鐵還專門成立了擁擠度功能開發小組,建立應急響應機制,確保初期數據傳輸順暢、顯示穩定。未來,擁擠度信息將可實現根據乘客出行習慣精準推送。
  • Redis怎麼實現查找附近的人,請看特殊數據類型Geospatial
    具體操作就是將指定的地理空間位置(緯度、經度、名稱)添加到指定的key中,這些數據將會存儲到sorted set然後使用GEORADIUS或者GEORADIUSBYMEMBER命令對數據進行半徑查詢計算出範圍內的元素和元素之間的距離。
  • 【複習專題】地球經緯網
    考點三 經緯網上距離計算考點四 經緯線和經緯度的判斷【例1】 (高考經典題)下圖是經緯網圖層和中國省級行政中心圖層的疊加圖,圖中經緯線間隔度數相等。2.判斷經緯度(1)根據經緯度的分布規律,向北增大是北緯「N」,向南增大是南緯「S」,向東增大是東經「E」,向西增大是西經「W」。
  • 經緯度批量快速查詢方法
    平時生活中常常要查詢某些地方的經緯度,尤其是做網站的朋友以及一些快遞員都要查詢經緯度值,今天我們用藉助工具來批量查詢經緯度,反查詢經緯度,批量生成地圖等
  • 億級經緯度距離計算88.73秒,秒殺VBA!
    計算經緯度的代碼網上一搜一大把,通常是單點距離的計算,無法實現批量計算,本文將利用pandas實現億級經緯度距離代碼的實現。本文將實現兩張表的任意點之間100、200、300、500、800、1000米範圍內的距離計算。
  • 【今日回答】經緯度距離計算@趙趙趙妹媚
    同一經線上,緯度每一度的間距是111km同一緯線上,每一經度的間距是用111乘以緯度數的餘弦值算兩地的實地距離時,可以用勾股定理在地球儀上,與赤道相平行的圓就是緯線緯度每差1度,距離相差110千米在地球儀上,連接南北兩極點的半圓就是 經線經度每差1度的實地距離是:110千米*cosa其中
  • 美團面試官問我如何查詢附近商家,我這樣說可以懟翻他!
    如果以0度經線為基準,那麼根據地球表面任意兩點的經緯度就可以計算出這兩點間的地表距離(這裡忽略地球表面地形對計算帶來的誤差,僅僅是理論上的估算值)。維基百科上找到了這樣的一張對應表:當有一個32位數字的時候,精細度大概是2500公裡,當有8個數字的時候,精細度大概是0.019km = 19米。也就是說,8個32位的數字 對應 8*5=40個二進位數,也就是經緯度分別劃20次,就可以達到19米的精細度。
  • pokemongo小火龍坐標經緯度 pokemongo小火龍在哪抓捕?
    pokemon go小火龍坐標位置:pokemon go小火龍坐標經緯度:pokemon go遊戲目前是沒有國服的,所以國內的玩家想要玩pokemon go遊戲基本都是要通過虛擬定位來進行,目前有稀有精靈的位置就是美國的舊金山聯合廣場了,小火龍:緯度37.790886,經度-122.389275。
  • 使用經緯度校正圖片並添加經緯度坐標點的方法
    使用經緯度校正圖片並添加經緯度坐標點的方法
  • 經緯中學的足球路
    孫佳圓是山西省晉中市榆次區經緯中學的一名學生,也是該校女子足球隊的隊員。今年15歲的她從2016年開始踢足球。「別小看足球,裡面大有乾坤:足球也有勾股定理、踢球傳球都要講究角度、做一個假動作腿必須傾斜到90度……」一說起足球,孫佳圓便停不下來。在經緯中學,這種對足球的熱愛由來已久。
  • 濟南經緯路方向為何與地球經緯相反?
    與眾不同的濟南經緯路。  「走在經緯路上,記憶回到從前。大辮子公交車裡,陌生又熟悉的臉,走在經緯路上,時光變得很慢,中山公園秋雨纏纏綿綿……」  一首舒緩動聽的歌曲《經緯之間》將濟南人跟經緯路之間深厚的感情表露無遺。自1904年濟南自開商埠算起,經緯路已有百年歷史,伴隨了幾代濟南人。濟南人常說的經一路、緯二路、建國小經三路、經七緯二、經十路……指的就是濟南獨具特色的經緯路段。
  • 菜鳥高德給每棟樓標上經緯度
    原標題:菜鳥高德給每棟樓標上經緯度   本報訊(記者 範曉)隨著電商物流和O2O上門服務的蓬勃發展,再加上交通導航等個體需求,地址服務的精細化水平也迎來升級。昨日,菜鳥網絡與高德地圖宣布將打通底層地址數據,建設國內先進的5級地址庫。據透露,5級地址庫會通過開放平臺提供給各行業使用,將被應用到物流、O2O、導航、氣象等多種場景。
  • 這份經緯度知識詳解+練習題,務必列印
    這份經緯度知識詳解+練習題,務必列印地理是進入初一後新增的一門課程,在初中階段只學習兩年,它也被稱為文科中的理科,不僅要背要記的知識點很多,同樣需要理解的概念也多,因此,很多同學的地理成績並不理想,因為不知道如何去掌握知識,就算將知識死記硬背記住了,也還是容易搞錯搞混。
  • Laravel 自定義 SQL 查詢參數綁定
    引言 laravel使用模型進行資料庫操作時,並不是所有的欄位或者關聯關係 都能滿足查詢需求,有時候會有一些MySQL的函數計算等功能放在資料庫 層面執行。
  • 經緯網的知識在高考解題中的應用
    經緯網的知識在高考解題中的應用 2011-03-20 21:39 來源:中學生學習庫 作者: