php查询获取经纬度的详细信息-腾讯地图
我这里的使用场景是校验所选经纬度是否所属于规定的省市区下面
获取区域code码进行比对
- 封装的查询类
<?phpnamespace app\common\library;/*** @name: 经纬度查询类* @author: Turbo* @Date: 2022-09-20 10:44:36*/
class SelectLngLatData
{protected static $instance;/*** @var array 配置*/protected $option = [];/*** @var int 当前时间*/protected $time = 0;/*** @var string 错误信息*/protected $errorMessage = '';public function __construct($lng = 0, $lat = 0){$this->time = time();$this->option['lng'] = $lng;$this->option['lat'] = $lat;}private function __clone(){// TODO: Implement __clone() method.}/*** 初始化* @param str $lng 经度* @param str $lat 纬度* @return SelectLngLatData*/public static function instance($lng = 0, $lat = 0){if (is_null(self::$instance)) {self::$instance = new static($lng, $lat);}return self::$instance;}public function getLongLatInfo(){if (!empty($this->option['lng'])) {$longitude = $this->option['lng'];} else {$this->setError('请传输经度');return false;}if (!empty($this->option['lat'])) {$latitude = $this->option['lat'];} else {$this->setError('请传输纬度');return false;}$longitude = number_format(doubleval($longitude), 6);$latitude = number_format(doubleval($latitude), 6);$key = '这里填KeyKey'; // 腾讯地图key值$url = 'https://apis.map.qq.com/ws/geocoder/v1?key=' . $key . '&location=' . $latitude . ',' . $longitude;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPGET, true);curl_setopt($ch, CURLOPT_AUTOREFERER, 1);curl_setopt($ch, CURLOPT_REFERER, $url);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);$content = curl_exec($ch);curl_close($ch);if (!empty($content)) {$result = json_decode($content, true);if ($result['status'] == 0) {return $result['result'];} else {$this->setError($result['message']);return false;}} else {$this->setError('经纬度不合法,请重新尝试');return false;}}/*** 设置错误信息* @param string $msg 错误信息*/protected function setError($msg){$this->errorMessage = $msg;}/*** 设置错误信息* @return string 错误信息*/public function getError(){return $this->errorMessage;}
}
- 进行调用(举个例子)
$params = $this->request->post();
$SelectLngLatDataLib = SelectLngLatData::instance($params['lng'], $params['lat']);
if(!$res = $SelectLngLatDataLib->getLongLatInfo()){$this->error($SelectLngLatDataLib->getError()); // 抛出异常}else{$district = ''; // 指定的区县范围if ($res['ad_info']['adcode'] != $district) {$this->error('选中的坐标不在片区的省市区范围内,请选择正确的坐标'); // 抛出异常}}
// 通过检验.........
php查询获取经纬度的详细信息-腾讯地图相关推荐
- 获取文件-属性-详细信息
结构包含了文件的版本信息: GetFileVersionInfoSize函数用于判断系统能否检索到指定文件的版本信息,如果可以函数返回版本信息的字节大小: DWORD WINAPI GetFileVe ...
- Java快递物流查询接口,怎么接入物流接口API,如何根据单号查询物流跟踪的详细信息的Demo详细说明。
Java怎么写物流接口,怎么接入物流接口,如何根据单号查询物流跟踪的详细信息 1. 需求 根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递Api接口,实现自动查询的功能 2. demo实 ...
- Java快递物流查询接口,怎么接入物流接口API,如何根据单号查询物流跟踪的详细信息的Demo详细说明
Java怎么写物流接口,怎么接入物流接口,如何根据单号查询物流跟踪的详细信息 实现需求: 根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递Api接口,实现自动查询的功能 应用场景 实现的 ...
- EasyCVR对接华为eSDK IVS,1400查询采集系统列表和详细信息
之前我们讲过EasyCVR对接华为IVS获取车载监控GPS位置告警订阅的接口,在对接华为平台方面,我们还做了其他接口的研究.本文我们分享一下EasyCVR对接华为eSDK IVS,1400查询采集系统 ...
- 微信公众号开发之网页授权认证获取用户的详细信息,实现自动登陆
原创声明:本文转来源本人另一博客[http://blog.csdn.net/liaohaojian/article/details/70175835]绝非他人处转载 从接触公众号到现在,开发维护了2个 ...
- (微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆)http://blog.csdn.net/liaohaojian/article/details/70175835
从接触公众号到现在,通过不断积累学习,对如何调用微信提供接口有了一定的见解.当然在开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开 ...
- sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息
sql 获取数据库字段信息 In the series of articles on DBATools, (see TOC at the bottom) we are exploring useful ...
- 获取Exception的详细信息
获取Exception的详细信息 我自己运行测试的环境:windowsXP.eclipse3.5.1.jdk1.6 下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回,保持栈堆 ...
- 小程序获取城市行政区号_小程序中通过经纬度如何获取所在省市区名字(腾讯地图JavaScript SDK)...
在小程序中通过经纬度来获取所在省市区名字,这个功能还是挺有意思的,小程序中竟然不直接返回所在省市区,只提供经纬度,还需要腾讯地图来获取,还是有点小坑的,不注意的话很容易出问题.废话不多说,请看下文. ...
最新文章
- varchar和nvarchar的区别
- 我如何调优SQL Server查询
- 关键字static、const、volatile的作用
- koa-static使用时报Unexpected token function
- 解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果
- java7 arm_zynq7000系列移植—JDK1.7 移植到嵌入式ARM平台
- Python3网络爬虫(四): 登录
- air java,Java Bean
- js根据name获取value_js 函数的重载
- matlab基本编程实验1,matlab实验4MATLAB基本编程.doc
- SpringMVC 框架系列之组件概述与配置详解
- ReiBoot Pro for Mac(iOS系统修复软件)
- nodePPT初认识启动与手机控制
- pscp新机器提示Store key in cache? 重装后提示Update cached key?的解决方案
- 新浪微博Python登陆
- linux cp批量复制,【linux】cp 批量复制文件
- Python Qt6快速入门-嵌入PyQtGraph图表
- 并发编程——线程协作
- Maven环境搭建及配置
- 网络安全-网站漏洞扫描器