功能:当App获取到用户的地理坐标时,能够依据坐标知道用户当前在那个国家、省份、城市。及周边有什么数据。

原理:基于百度Geocoding API 实现。须要先注冊百度开发人员。然后申请百度AK(密钥)

Geocoding.class.php

<?php
/*** 依据地理坐标获取国家、省份、城市,及周边数据类(利用百度Geocoding API实现)* 百度密钥获取方法:http://lbsyun.baidu.com/apiconsole/key?application=key(须要先注冊百度开发人员账号)* Date:    2015-07-30* Author:  fdipzone* Ver: 1.0** Func:* Public  getAddressComponent 依据地址获取国家、省份、城市及周边数据* Private toCurl              使用curl调用百度Geocoding API*/class Geocoding {// 百度Geocoding APIconst API = 'http://api.map.baidu.com/geocoder/v2/';// 不显示周边数据const NO_POIS = 0;// 显示周边数据const POIS = 1; /*** 依据地址获取国家、省份、城市及周边数据* @param  String  $ak        百度ak(密钥)* @param  Decimal $longitude 经度* @param  Decimal $latitude  纬度* @param  Int     $pois      是否显示周边数据* @return Array*/public static function getAddressComponent($ak, $longitude, $latitude, $pois=self::NO_POIS){$param = array('ak' => $ak,'location' => implode(',', array($latitude, $longitude)),'pois' => $pois,'output' => 'json');// 请求百度api$response = self::toCurl(self::API, $param);$result = array();if($response){$result = json_decode($response, true);}return $result;}/*** 使用curl调用百度Geocoding API* @param  String $url    请求的地址* @param  Array  $param  请求的參数* @return JSON*/private static function toCurl($url, $param=array()){$ch = curl_init();if(substr($url,0,5)=='https'){curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在}curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));$response = curl_exec($ch);if($error=curl_error($ch)){return false;}curl_close($ch);return $response;}}?

>

demo.php

<?php
require "Geocoding.class.php";$ak = '这里填写你的百度AK';
$longitude = 113.327782;
$latitude = 23.137202;$result = Geocoding::getAddressComponent($ak, $longitude, $latitude, Geocoding::NO_POIS);echo '<pre>';
print_r($result);
echo '</pre>';
?

>

样例返回:

Array
([status] => 0[result] => Array([location] => Array([lng] => 113.32778195925[lat] => 23.137201991056)[formatted_address] => 广东省广州市天河区体育西横街35号[business] => 天河城,体育中心,沙河[addressComponent] => Array([city] => 广州市[country] => 中国[direction] => 附近[distance] => 14[district] => 天河区[province] => 广东省[street] => 体育西横街[street_number] => 35号[country_code] => 0)[poiRegions] => Array()[sematic_description] => 红盾大厦北58米[cityCode] => 257))

源代码下载地址:点击查看

转载于:https://www.cnblogs.com/jzssuanfa/p/7273368.html

php依据地理坐标获取国家、省份、城市,及周边数据类相关推荐

  1. 【java】使用ip获取 国家 省份 城市

    1.下载GeoLite2 City库 下载地址: http://dev.maxmind.com/geoip/geoip2/geolite2/ https://download.csdn.net/dow ...

  2. php 通过坐标获取省市,通过php根据地理坐标来获取国家、省份、城市,及周边数据类...

    功能:当App获取到用户的地理坐标时,可以根据坐标知道用户当前在那个国家.省份.城市,及周边有什么数据. 原理:基于百度Geocoding API 实现,需要先注册百度开发者,然后申请百度AK(密钥) ...

  3. 最新IP数据库-基于国家省份城市县区和运营商-专业准确-每月发行

    最新IP地址数据库(qqzeng-ip) 2023年6月 最新发行版 992003 条数据 版本:全球旗舰版(国内精华版+国外拓展版) 基于:国内基于省市区以及运营商 国外基于国家 部分到大城市和运营 ...

  4. 修改QQ资料国家,省份,城市为空

    最新修改QQ资料国家,省份,城市为空的方法 打开默认就填上了 好多人都想把QQ资料中的国家.城市有的人都是这样 "首先我们要准备的工具是 腾讯QQ2008 贺岁版(没有的去百度搜下) 年龄也 ...

  5. Unity 工具之 获取当前所在城市的天气数据的封装(自动定位当前所在城市,天气数据可以获得多天天数据)

    Unity 工具之 获取当前所在城市的天气数据的封装(自动定位当前所在城市,天气数据可以获得多天天数据) 目录 Unity 工具之 获取当前所在城市的天气数据的封装(自动定位当前所在城市,天气数据可以 ...

  6. java IP转换为国家省份城市

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 参考文章:https://blog.csdn.net/chws ...

  7. 国家省份城市级联菜单

    <html> <head> <title>级联菜单</title> <meta http-equiv="Content-Type&quo ...

  8. 【Java获取国家法定节假日三种工具类其三】

    使用GitHub开源Api调用获取国家法定节假日 public class HolidayUtils {/*** 请求第三方接口的方法** @param url 请求的url* @return*/pu ...

  9. js 获取当前国家 省份 城市等信息

    引入jquery.js$.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js',function(){ale ...

  10. 世界国家省份城市县区街道村地址邮编常用通用功能最全API - 多级联动 - 淘宝天猫阿里巴巴技术赏析...

    请登录购买宝贝并到结帐页面 http://unit.buy.tmall.com/order/confirmOrder.htm 当到这个页面后,你会发现这个页面是个iframe(框架),单击右键可以轻松 ...

最新文章

  1. Java中的等待/通知机制(wait/notify)
  2. python smtp模块发送邮件
  3. Request_获取请求头数据
  4. Java——线程锁,死锁,等待唤醒机制
  5. 华中师范大学本科生计算机课教师,华中师范大学第八届大学生计算机设计大赛的通知...
  6. es6 Object.getPrototypeOf()方法
  7. 解决: Mysql安装时mysqld.exe报`应用程序无法正常启动(0xc000007b)`的问题
  8. iOS Crash常规跟踪方法及Bugly集成运用
  9. 版本差异_终极版!三星Note20系列在真机再曝光,不同版本差异在这几点
  10. DPDK之PMD原理
  11. Eclipse Theia:Eclipse的继承者?
  12. Bulma CSS框架教程
  13. (孔乙己茴香豆的的“茴”字有几种写法)三栏布局两边固定中间自适应
  14. 记一次wkhtmltopdf填坑经历
  15. 《产品前线:48位一线互联网产品经理的智慧与实战》读书笔记3
  16. python中怎么把每一个字符用、隔开_python 实现将list转成字符串,中间用空格隔开...
  17. OSI七层模型基础知识及各层常见应用
  18. UserBehavior用户行为分析
  19. 无https证书调用摄像头以及精伦读卡器IDR210-1调用安装
  20. HashMap、哈希表、哈希函数

热门文章

  1. 苹果Mac专业的 Go 开发集成环境:JetBrains GoLand
  2. Redis 单数据多源超高并发下的解决方案
  3. Redis 单机使用以及部署
  4. 中国云计算进入全球通时代 阿里云四大海外数据中心相继开服
  5. win7下声音图标消失的解决办法
  6. 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
  7. POJ-1087 A Plug for UNIX 网络流
  8. MySQL复制 自动监控脚本
  9. [电影]十七岁的单车
  10. 我们公司使用了 6 年的Spring Boot 项目部署方案!打包 + Shell 脚本部署详解,稳的一批!...