'array', ]; /** * 判断是否在某服务区 返回服务区城市信息 * @param $params * @return bool */ public static function serviceAreaId($params):int { if (empty($params['lon']) || empty($params['lat'])) { return 0; } // 查询服务区所有的地点 $rules = ServiceArea::field(['id', 'province', 'city','county', 'area_name', 'electronic_fence'])->select()->toArray(); $point=['lng'=> $params['lon'],'lat'=> $params['lat']]; foreach ($rules as $value){ foreach ($value['electronic_fence'] as $polygon) { if (isPointInPolygon($point, $polygon)) { return $value['id']; } } } return 0; } /** * 根据经纬度,返回服务区城市信息 * @param $params * @return bool */ public static function serviceArea($params):array { if (empty($params['lon']) || empty($params['lat'])) { return []; } // 查询服务区所有的地点 $rules = ServiceArea::field(['id', 'province', 'city','county', 'area_name', 'electronic_fence'])->select()->toArray(); $point=['lng'=> $params['lon'],'lat'=> $params['lat']]; foreach ($rules as $value){ foreach ($value['electronic_fence'] as $polygon) { if (isPointInPolygon($point, $polygon)) { return $value; } } } return []; } }