예제 #1
0
 public function index()
 {
     $radius = 2000;
     $map = new baiduMap('酒店', 31.844931631914, 117.21469057536);
     $str = $map->echoJson();
     $array = json_decode($str);
     echo $str;
 }
예제 #2
0
 function map($x, $y)
 {
     if (C('baidu_map')) {
         $transUrl = 'http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=' . $x . '&y=' . $y;
         $json = Http::fsockopenDownload($transUrl);
         if ($json == false) {
             $json = file_get_contents($transUrl);
         }
         $arr = json_decode($json, true);
         $x = base64_decode($arr['x']);
         $y = base64_decode($arr['y']);
     } else {
         $amap = new amap();
         $lact = $amap->coordinateConvert($y, $x, 'gps');
         $x = $lact['latitude'];
         $y = $lact['longitude'];
     }
     $user_request_model = M('User_request');
     $urWhere = array('token' => $this->_get('token'), 'msgtype' => 'text', 'uid' => $this->data['FromUserName']);
     $urWhere['time'] = array('gt', time() - 5 * 60);
     $user_request_row = $user_request_model->where($urWhere)->find();
     if (!(strpos($user_request_row['keyword'], '附近') === FALSE)) {
         $user = M('Nearby_user')->where(array('token' => $this->_get('token'), 'uid' => $this->data['FromUserName']))->find();
         $keyword = $user['keyword'];
         $radius = 2000;
         if (C('baidu_map')) {
             $map = new baiduMap($keyword, $x, $y);
             $str = $map->echoJson();
             $array = json_decode($str);
             $map = array();
             foreach ($array as $key => $vo) {
                 $map[] = array($vo->title, $key, rtrim($this->siteUrl, '/') . '/tpl/static/images/home.jpg', $vo->url);
             }
             if ($map) {
                 return array($map, 'news');
             } else {
                 $str = file_get_contents($this->siteUrl . '/map.php?keyword=' . urlencode($keyword) . '&x=' . $x . '&y=' . $y);
                 $array = json_decode($str);
                 $map = array();
                 foreach ($array as $key => $vo) {
                     $map[] = array($vo->title, $key, rtrim($this->siteUrl, '/') . '/tpl/static/images/home.jpg', $vo->url);
                 }
                 if ($map) {
                     return array($map, 'news');
                 } else {
                     return array('附近信息无法调出,请稍候再试一下(关键词' . $keyword . ',坐标:' . $x . '-' . $y . ')', 'text');
                 }
             }
         } else {
             $amamp = new amap();
             return $amamp->around($x, $y, $keyword, $radius);
         }
     } else {
         if (!(strpos($this->fun, 'lbsNews') === FALSE)) {
             $lbsImgClass = new lbsImgNews($this->token, $this->data['FromUserName'], $this->siteUrl);
             return $lbsImgClass->news($x, $y);
         }
         $mapAction = new Maps($this->token);
         if (!(strpos($user_request_row['keyword'], '开车去') === FALSE) || !(strpos($user_request_row['keyword'], '坐公交') === FALSE) || !(strpos($user_request_row['keyword'], '步行去') === FALSE)) {
             if (!(strpos($user_request_row['keyword'], '步行去') === FALSE)) {
                 $companyid = str_replace('步行去', '', $user_request_row['keyword']);
                 if (!$companyid) {
                     $companyid = 1;
                 }
                 return $mapAction->walk($x, $y, $companyid);
             }
             if (!(strpos($user_request_row['keyword'], '开车去') === FALSE)) {
                 $companyid = str_replace('开车去', '', $user_request_row['keyword']);
                 if (!$companyid) {
                     $companyid = 1;
                 }
                 return $mapAction->drive($x, $y, $companyid);
             }
             if (!(strpos($user_request_row['keyword'], '坐公交') === FALSE)) {
                 $companyid = str_replace('坐公交', '', $user_request_row['keyword']);
                 if (!$companyid) {
                     $companyid = 1;
                 }
                 return $mapAction->bus($x, $y, $companyid);
             }
         } else {
             switch ($user_request_row['keyword']) {
                 default:
                     return $this->companyMap();
                     break;
                 case '最近的':
                     return $mapAction->nearest($x, $y);
                     break;
             }
         }
     }
 }
예제 #3
0
 function map($x, $y) {
     $transUrl = 'http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=' . $x . '&y=' . $y;
     $json = Http::fsockopenDownload($transUrl);
     if ($json == false) {
         $json = file_get_contents($transUrl);
     }
     $arr = json_decode($json, true);
     $x = base64_decode($arr['x']);
     $y = base64_decode($arr['y']);
     $user_request_model = M('User_request');
     $user_request_row = $user_request_model->where(array(
         'token' => $this->_get('token') ,
         'msgtype' => 'text',
         'uid' => $this->data['FromUserName']
     ))->find();
     if (!(strpos($user_request_row['keyword'], '附近') === FALSE)) {
         $user = M('Nearby_user')->where(array(
             'token' => $this->_get('token') ,
             'uid' => $this->data['FromUserName']
         ))->find();
         $keyword = $user['keyword'];
         $radius = 2000;
         $map = new baiduMap($keyword, $x, $y);
         $str = $map->echoJson();
         $array = json_decode($str);
         $map = array();
         foreach ($array as $key => $vo) {
             $map[] = array(
                 $vo->title,
                 $key,
                 rtrim(C('site_url') , '/') . '/tpl/static/images/home.jpg',
                 $vo->url
             );
         }
         if ($map) {
             return array(
                 $map,
                 'news'
             );
         } else {
             return array(
                 '附近信息无法调出,请稍候再试一下',
                 'text'
             );
         }
     } else {
         import("Home.Action.MapAction");
         $mapAction = new MapAction();
         if (!(strpos($user_request_row['keyword'], '开车去') === FALSE) || !(strpos($user_request_row['keyword'], '坐公交') === FALSE) || !(strpos($user_request_row['keyword'], '步行去') === FALSE)) {
             if (!(strpos($user_request_row['keyword'], '步行去') === FALSE)) {
                 $companyid = str_replace('步行去', '', $user_request_row['keyword']);
                 if (!$companyid) {
                     $companyid = 1;
                 }
                 return $mapAction->walk($x, $y, $companyid);
             }
             if (!(strpos($user_request_row['keyword'], '开车去') === FALSE)) {
                 $companyid = str_replace('开车去', '', $user_request_row['keyword']);
                 if (!$companyid) {
                     $companyid = 1;
                 }
                 return $mapAction->drive($x, $y, $companyid);
             }
             if (!(strpos($user_request_row['keyword'], '坐公交') === FALSE)) {
                 $companyid = str_replace('坐公交', '', $user_request_row['keyword']);
                 if (!$companyid) {
                     $companyid = 1;
                 }
                 return $mapAction->bus($x, $y, $companyid);
             }
         } else {
             switch ($user_request_row['keyword']) {
                 case '最近的':
                     return $mapAction->nearest($x, $y);
                     break;
             }
         }
     }
 }