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
- 下一篇: win 10iis php7,win10