我这里的使用场景是校验所选经纬度是否所属于规定的省市区下面
获取区域code码进行比对
  1. 封装的查询类
<?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;}
}
  1. 进行调用(举个例子)
$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查询获取经纬度的详细信息-腾讯地图相关推荐

  1. 获取文件-属性-详细信息

    结构包含了文件的版本信息: GetFileVersionInfoSize函数用于判断系统能否检索到指定文件的版本信息,如果可以函数返回版本信息的字节大小: DWORD WINAPI GetFileVe ...

  2. Java快递物流查询接口,怎么接入物流接口API,如何根据单号查询物流跟踪的详细信息的Demo详细说明。

    Java怎么写物流接口,怎么接入物流接口,如何根据单号查询物流跟踪的详细信息 1. 需求 根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递Api接口,实现自动查询的功能 2. demo实 ...

  3. Java快递物流查询接口,怎么接入物流接口API,如何根据单号查询物流跟踪的详细信息的Demo详细说明

    Java怎么写物流接口,怎么接入物流接口,如何根据单号查询物流跟踪的详细信息 实现需求: 根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递Api接口,实现自动查询的功能 应用场景 实现的 ...

  4. EasyCVR对接华为eSDK IVS,1400查询采集系统列表和详细信息

    之前我们讲过EasyCVR对接华为IVS获取车载监控GPS位置告警订阅的接口,在对接华为平台方面,我们还做了其他接口的研究.本文我们分享一下EasyCVR对接华为eSDK IVS,1400查询采集系统 ...

  5. 微信公众号开发之网页授权认证获取用户的详细信息,实现自动登陆

    原创声明:本文转来源本人另一博客[http://blog.csdn.net/liaohaojian/article/details/70175835]绝非他人处转载 从接触公众号到现在,开发维护了2个 ...

  6. (微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆)http://blog.csdn.net/liaohaojian/article/details/70175835

    从接触公众号到现在,通过不断积累学习,对如何调用微信提供接口有了一定的见解.当然在开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开 ...

  7. sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息

    sql 获取数据库字段信息 In the series of articles on DBATools, (see TOC at the bottom) we are exploring useful ...

  8. 获取Exception的详细信息

    获取Exception的详细信息 我自己运行测试的环境:windowsXP.eclipse3.5.1.jdk1.6 下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回,保持栈堆 ...

  9. 小程序获取城市行政区号_小程序中通过经纬度如何获取所在省市区名字(腾讯地图JavaScript SDK)...

    在小程序中通过经纬度来获取所在省市区名字,这个功能还是挺有意思的,小程序中竟然不直接返回所在省市区,只提供经纬度,还需要腾讯地图来获取,还是有点小坑的,不注意的话很容易出问题.废话不多说,请看下文. ...

最新文章

  1. varchar和nvarchar的区别
  2. 我如何调优SQL Server查询
  3. 关键字static、const、volatile的作用
  4. koa-static使用时报Unexpected token function
  5. 解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果
  6. java7 arm_zynq7000系列移植—JDK1.7 移植到嵌入式ARM平台
  7. Python3网络爬虫(四): 登录
  8. air java,Java Bean
  9. js根据name获取value_js 函数的重载
  10. matlab基本编程实验1,matlab实验4MATLAB基本编程.doc
  11. SpringMVC 框架系列之组件概述与配置详解
  12. ReiBoot Pro for Mac(iOS系统修复软件)
  13. nodePPT初认识启动与手机控制
  14. pscp新机器提示Store key in cache? 重装后提示Update cached key?的解决方案
  15. 新浪微博Python登陆
  16. linux cp批量复制,【linux】cp 批量复制文件
  17. Python Qt6快速入门-嵌入PyQtGraph图表
  18. 并发编程——线程协作
  19. Maven环境搭建及配置
  20. 网络安全-网站漏洞扫描器

热门文章

  1. 解决ipconfig /all一闪即没的问题
  2. python少儿编程培训
  3. 深圳奋达职业技术学校计算机二级,深圳市奋达职业技术学校松岗校区
  4. java类的加载时机和过程
  5. 【音视频基础】(十):YUV颜色空间之彩色电视制
  6. 246、两个不同网段的路由器,如何互通
  7. comsol圆柱形永磁体_几组特殊形状永磁体的磁场及梯度COMSOL分析
  8. k8s--Volum存储方式
  9. 《C陷阱与缺陷》第一章【词法“陷阱”】
  10. Autodesk 123D Design最新中文版详细安装教程!