php计算两个地点的距离
很多朋友做的項目中相信都會出現這樣的場景。同樣在最近做的項目中也出現了這樣的場景,經過查詢研究整理出來了兩種方法。
第一種:業務邏輯代碼實現兩地距離(推薦) 這個方法寫到公共類中最好
function getPalceDiff( $sLat1,$sLng1,$sLat2,$sLng2 )
{
}
第二種:sql查詢過濾,試想一下如果業務邏輯是要得到當前地點5公里內的所有停車場信息,上面那種方法貌似就不合適了,因為我們需要把所有的停車場都查出來再循環處理查詢計算兩地差,那么這樣的代碼邏輯運行起來過去多,如果停車場太多呢。我暫時還沒有想到更好的辦法,所以就用了數據庫查詢方法來執行,也希望那個大神,如果有更好的實現邏輯,賜教一下
“select ROUND(6378.1382ASIN(SQRT(POW(SIN(($latitude*PI()/180-latitude*PI()/180)/2),2)+COS($latitude*PI()/180)*COS(latitude*PI()/180)*POW(SIN(($longitude*PI()/180-longitude*PI()/180)/2),2)))*1000) AS distance FROM shop having distance <= 5000 order by distance asc FROM table”
*根據自己的數據庫字段名去換里面的字段名 比如latitude 你的是lat
這兩種方法根據不同的業務需求,來選擇用那種方式來解決,當然如果可以盡量代碼來解決這個問題,從而減輕對數據庫的壓力
總結
以上是生活随笔為你收集整理的php计算两个地点的距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iis7 下php 环境配置文件,Win
- 下一篇: 动态规划算法php,php算法学习之动态