params['longitude'] ?? '113.26699632855939'; $latitude = $this->params['latitude'] ?? '23.129000787845236'; $coordinate = convert_gcj02_to_bd09(floatval($latitude), floatval($longitude)); $longitude = $coordinate['lng']; $latitude = $coordinate['lat']; $distance = "round((6378.138*2*asin(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))/1000"; $lists = SelffetchShop::field(['id', 'name', $distance => 'distance','mobile', 'business_start_time','business_end_time','province','city','district','address','longitude','latitude']) ->append(['detailed_address']) ->hidden(['province','city','district','address']) ->where(['status'=>1]) ->order(['distance' => 'asc']) ->limit($this->limitOffset, $this->limitLength) ->select() ->toArray(); foreach ($lists as &$item) { $item['distance'] = round($item['distance'], 2) . 'km'; // $coordinate = Convert_BD09_To_GCJ02($item['latitude'], $item['longitude']); // $item['longitude'] = $coordinate['lng']; // $item['latitude'] = $coordinate['lat']; } return $lists; } /** * @notes 查看自提门店总数 * @return int * @author ljj * @date 2021/8/27 3:19 下午 */ public function count(): int { return SelffetchShop::where(['status'=>1])->count(); } }