/** * 得到模糊坐标 */ public function getPoint($area, $address, $key) { //百度地图接口:http://api.map.baidu.com/geocoder/v2/address=地址&output=输出格式类型&key=用户密钥&city=城市名 //需要4个参数:address详细地址,output格式,ak接口密匙,city城市名 //地区转换 // $areaModel = AreaModel::find($area); // $areaname = $areaModel ? $areaModel->cityname : ''; $cityModel = new AreaModel(); $areaname = $area ? $cityModel->getAreaName($area) : ''; //请求接口,返回数据 $apiUrl = 'http://api.map.baidu.com/geocoder/v2/'; $curl = new \Curl\Curl(); $curl->setHeader('X-Authorization', $key); $curl->get($apiUrl, array('address' => $address, 'output' => 'json', 'ak' => $key, 'city' => $areaname)); $response = json_decode($curl->response); $response = \App\Tools::objectToArray($response); if ($response['status'] != 0) { if ($response['status'] == 1) { echo "<script>alert('地址有误或百度地图服务器内部有变!');history.go(-1);</script>"; exit; } elseif ($response['status'] == 2) { echo "<script>alert('地区或地址有误!');history.go(-1);</script>"; exit; } elseif ($response['status'] == 3) { echo "<script>alert('权限校验失败!');history.go(-1);</script>"; exit; } elseif ($response['status'] == 4) { echo "<script>alert('配额校验失败!');history.go(-1);</script>"; exit; } elseif ($response['status'] == 5) { echo "<script>alert('百度地图密匙错误!');history.go(-1);</script>"; exit; } elseif ($response['status'] == 101) { echo "<script>alert('服务禁用!');history.go(-1);</script>"; exit; } elseif ($response['status'] == 102) { echo "<script>alert('百度地图密匙权限不足!');history.go(-1);</script>"; exit; } elseif ($response['status'] == "2xx") { echo "<script>alert('无权限!');history.go(-1);</script>"; exit; } elseif ($response['status'] == "3xx") { echo "<script>alert('配额错误!');history.go(-1);</script>"; exit; } } return $response['result']['location']; }
/** * 拼接地区名称字符串 */ public function getAreaName($area = null) { $areaid = $this->area ? $this->area : 0; if (!$areaid && $area) { $areaid = $area; } $areaModel = AreaModel::find($areaid); $areaName = ''; //本级 if ($areaModel) { $areaName = $areaName ? $areaName . ',' . $areaModel->cityname : $areaModel->cityname; } //上一级 if ($areaModel && $areaModel->parentid) { $areaModel2 = AreaModel::find($areaModel->parentid); $areaName = $areaModel2 ? $areaName . ',' . $areaModel2->cityname : $areaName; } //上上级 if (isset($areaModel2) && $areaModel2->parentid) { $areaModel3 = AreaModel::find($areaModel2->parentid); $areaName = $areaModel3 ? $areaName . ',' . $areaModel3->cityname : $areaName; } return $areaName; }
/** * 查询方法 */ public function query() { $datas = AreaModel::paginate($this->limit); $datas->limit = $this->limit; return $datas; }