Exemplo n.º 1
0
 /**
  * 得到模糊坐标
  */
 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'];
 }
Exemplo n.º 2
0
 /**
  * 拼接地区名称字符串
  */
 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;
 }
Exemplo n.º 3
0
 /**
  * 查询方法
  */
 public function query()
 {
     $datas = AreaModel::paginate($this->limit);
     $datas->limit = $this->limit;
     return $datas;
 }