| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- namespace backend\modules\common\controllers;
- use common\helpers\map\QqMapHelper;
- use yii\web\Controller;
- use Yii;
- /**
- * 腾讯地图WebServiceAPI服务
- * Class QqMapController
- * @Author: lun
- * @DateTime: 2023/7/20 0020 11:14
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @package backend\modules\common\controllers
- */
- class QqMapController extends Controller
- {
- use \common\traits\BaseControllerTrait;
- public $enableCsrfValidation = false;
- /**
- * 地址解析(由文字地址到经纬度的转换能力,并同时提供结构化的省市区地址信息)
- * @Author: lun
- * @DateTime: 2023/7/20 0020 11:18
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- */
- public function actionGeocoder()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isPost) {
- $params = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['address'], 'required', 'message' => '请输入查询的详细地址'],
- [['address'], 'string'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $data = QqMapHelper::Geocoder($params['address']);
- if ($data['status'] != 0) return $this->error($data['message']);
- return $this->success('获取成功', $data['result']);
- }
- }
- /**
- * 根据经纬度解析地址
- * @Author: lun
- * @DateTime: 2023/7/21 0021 14:33
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- *
- */
- public function actionReverseGeocoder()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isPost) {
- $params = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['longitude','latitude'], 'required', 'message' => '需要解析的经纬度不能为空'],
- [['longitude','latitude'], 'safe'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $data = QqMapHelper::ReverseGeocoder($params['latitude'], $params['longitude']);
- if ($data['status'] != 0) return $this->error($data['message']);
- return $this->success('获取成功', $data['result']);
- }
- }
- /**
- * 根据IP获取地址
- * @Author: lun
- * @DateTime: 2023/7/20 0020 14:48
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- */
- public function actionIplocation()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isPost) {
- $data = QqMapHelper::Iplocation($request->userIP);
- if ($data['status'] != 0) return $this->error($data['message']);
- return $this->success('获取成功', $data['result']);
- }
- }
- }
|