PHP查詢附近的人及其距離的實現方法

2022-10-03 13:12:11 字數 1230 閱讀 4293

<?php //獲取該點周圍的4個點

$distance = 1;//範圍(單位千公尺)

$lat = 113.873643;

$lng = 22.573969;

define('earth_radius', 6371);//地球半徑,平均半徑為6371km

$dlng = 2 * asin(sin($qioutilidistance / (2 * earth_radius)) / cos(deg2rad($lat)));

$dlng = rad2deg($dlng);

$dlat = $distance/earth_radius;

$dlat = rad2deg($dlat);

$squares = 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 - $dln程式設計客棧g),

'right-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng)

);print_r($squares['left-top']['lat']);

//從數庫查詢匹配的記錄

$info_sql = "select * from `a` where lat<>0 and lat> and lat and lngqioutili']} ";

//獲取兩點之間的距離

function getdistancebetweenpointsnew($latitude1, $longitude1, $latitude2, $longitude2)

$point1 = array('lat' => 40.770623, 'long' => -73.964367);

$point2 = array('lat' =>程式設計客棧 40.758224, 'long' => -73.917404);

$distance = getdistancebetweenpointsnew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);

foreach ($distance as $unit => $value)

?>

查詢附近的人 mongodb的實現

最近做乙個關於附近的人查詢,參考了很多資料 現在市面上主流的做法 1.用資料庫 2.用類存 3.用lucene 我選用的是用mongodb自帶的查附近的人的方法,如下 dbobject db new basicdbobject cityid json.parse dbobject near new ...

PHP 技巧 附近的人功能實現

授權獲取使用者的經緯度並存入資料庫 lng 字段 lat 字段 1.原生查詢 select convert 2 6378.137 asin sqrt pow sin 3.1415926535898 get lat lat 360 2 cos 3.1415926535898 get lat 180 c...

如何實現查詢附近的人

問題 給定乙個使用者a,返回與此使用者相距小於d的所有使用者。支援geo的後端儲存有mongodb,redis等。那麼如果讓我們實現,我們應該怎麼做呢?思路 圍繞此使用者生成乙個圓形,半徑是d,返回所有被此園覆蓋的使用者。方法1 先求方,再求園。如果直接求園,每乙個使用者都要計算距離值,無法利用到索...