mysql坐標計算距離匹配


    /**
* 配送距離檢測
* param:
* pmsid:倉儲點id,lat:收貨地址緯度,lng:收貨地址經度
* logic:
* 根據收貨地址的經緯度檢測是否在配送范圍內,在返回true不在返回false
* 注意:數據庫返回距離的單位是米
*/
public function checkDistance($pmsid,$lat,$lng){
$distance=C('max_distance')*1000;
$sql="select ROUND(6378.138*2*ASIN(SQRT(POW(SIN(($lat*PI()/180-lat*PI()/180)/2),2)+COS($lat*PI()/180)*COS(lat*PI()/180)*POW(SIN(($lng*PI()/180-lng*PI()/180)/2),2)))*1000) AS distance FROM toocms_administrator where site_id = $pmsid and is_root = 1";
$res=M()->query($sql);
// out(json_encode($res));
// out($pmsid.'---'.$lat.'---'.$lng);
// out($res[0]['distance']);
if(empty($res)){
out('倉儲點不存在');
}
return $res[0]['distance']<$distance?true:false;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM