public function actionGetPoiEncode() { $lat = $_GET['lat']; $lon = $_GET['lon']; $gaode_regeo_api = 'http://restapi.amap.com/v3/geocode/regeo'; $api_key = '3c11184af876b8ed0c159423e7db3bac'; $radius = 500; $extensions = 'all'; $batch = false; $roadlevel = 1; $post_data = array('key' => $api_key, 'location' => $lat . "," . $lon, 'radius' => $radius, 'extensions' => $extensions, 'batch' => $batch, 'roadlevel' => $roadlevel); try { $results = ToolManager::post($gaode_regeo_api, $post_data); $res_array = json_decode($results, true); $status = $res_array['status']; } catch (Exception $e) { $status = '0'; } if ($status == '1') { $data_array = array(); foreach ($res_array['regeocode']['pois'] as $poi) { $local_prefix = $res_array['regeocode']['addressComponent']['province'] . $res_array['regeocode']['addressComponent']['district']; $tip_data['address'] = $poi['name']; $tip_data['local'] = $local_prefix . $poi['address']; $data_array[] = $tip_data; } $ret_json = array('status' => 0, 'message' => '输入提示获取成功!', 'data' => $data_array); } else { $ret_json = array('status' => 1, 'message' => '输入提示获取失败!', 'data' => array()); } echo CJSON::encode($ret_json); }
public function actionShopFilterRequest() { header('Content-Type: application/javascript'); $callback = $_REQUEST['callback']; $gaode_get_area_info = 'http://restapi.amap.com/v3/config/district'; $api_key = '3c11184af876b8ed0c159423e7db3bac'; $post_data = array('key' => $api_key, 'subdistrict' => 3, 'extensions' => 'base'); try { $tips = ToolManager::post($gaode_get_area_info, $post_data); $results = json_decode($tips, true); $status = $results['status']; $count = $results['count']; } catch (Exception $e) { $status = '0'; $count = '0'; } $ret_array = array('status' => 0, 'message' => "获取过滤条件成功!", 'data' => array()); $ret_json = array('status' => 0, 'message' => '获取地区列表成功!', 'data' => array()); if ($status == '1' && $count != '0') { $address_array = array('num' => 0, 'data' => array()); foreach ($results['districts'][0]['districts'] as $district) { $province_array = array('name' => $district['name'], 'city' => array()); $province = $district['districts']; $province_level_city = array("北京市", "天津市", "上海市", "重庆市"); if (empty($province)) { continue; } else { if (in_array($district['name'], $province_level_city)) { $sub_areas = $province[0]['districts']; } else { $sub_areas = $province; } } foreach ($sub_areas as $sub_area) { $city_arrary = array('name' => $sub_area['name']); $province_array['city'][] = $city_arrary; } $address_array['data'][] = array('province' => $province_array); } $address_array['num'] = count($address_array['data']); } else { $ret_json = array('status' => 1, 'message' => '获取地区列表失败!', 'data' => array()); } $type_array = array('num' => 0); $type_results = CarWashManager::getWashType(); if (!empty($type_results)) { foreach ($type_results as $result) { $type_array[strval($result->service_id)] = $result->service_name; } $type_array['num'] = count($type_results); } $range_array = array('num' => 0); $range_results = CarWashManager::getWashRange(); if (!empty($range_results)) { foreach ($range_results as $result) { $range_array[strval($result->range_id)] = $result->range_name; } $range_array['num'] = count($range_results); } if ($ret_json['status'] != 1) { $ret_json['data'][] = array('address' => $address_array, 'type' => $type_array, 'range' => $range_array); } echo $callback . "(" . CJSON::encode($ret_json) . ");"; }