ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
1 、计算经纬度 ``` $lng1 = 106.486654; $lat1 = 29.490295; $lng2 = 106.486515; $lat2 = 29.490467; $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))) * 6378137;//6378137是地球的平均半径 ``` ``` mysql 查询 $field = "(asin( sqrt(pow(sin(( RADIANS($lat) - RADIANS( `s`.`blat` ) ) / 2), 2)+cos( RADIANS($lat) ) * cos( RADIANS( `s`.`blat` ) ) * pow(sin( ( RADIANS($lng) - RADIANS( `s`.`blng` ) ) / 2), 2)) ) * 2 * 6378137 ) as distance ,s.shopid" ; $join = [["__SYS_AREA__ a1","a1.code = s.provinceid","LEFT"]]; $list = M("shop")->alias("s")->join($join)->field($field)->select(); ```