/**

* 根据地理坐标获取国家、省份、城市,及周边数据类(利用百度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 API

const 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;

}

}

?>

使用

header("Content-type: text/html; charset=utf-8");

header('Access-Control-Allow-Origin:*');

require "Geocoding.class.php";//引入配置类

$ak = '2q6OVS3LlFuZcoXGtXvqxAYq';//百度申请的秘钥,这里是错误的秘钥

class Location

{

public $province;

public $city;

public $district;

public $street;

public $address;

private static $_instance;

public static function getInstance()

{

if(! (self::$_instance instanceof self) )

{

self::$_instance = new self();

}

return self::$_instance;

}

private function __construct(){}

private function __clone(){}

}

function test_input($data)

{

$data = trim($data);

$data = stripslashes($data);

$data = htmlspecialchars($data);

return $data;

}

//默认以GET方式传送

$longitude = test_input($_GET["long"]);

$latitude = test_input($_GET["lat"]);

//$longitude=113.327782;

//$latitude=23.137202;

$result = Geocoding::getAddressComponent($ak, $longitude, $latitude, Geocoding::NO_POIS);

$locat=Location::getInstance() ;

$address=$result["result"]["addressComponent"];

if($address["province"]!=$address["city"])

{

$location=$address["province"].$address["city"].$address["district"].$address["street"];

}

else

{

$location=$address["city"].$address["district"].$address["street"];

}

$locat->province=$address["province"];

$locat->city=$address["city"];

$locat->district=$address["district"];

$locat->street=$address["street"];

$locat->address=$location;

$json = json_encode($locat);

echo "$json";//返回类似地址字符串也可根据自己需要返回地址

?>

百度地图API的IP定位城市和浏览器定位(转)

百度地图API提供了Geolocation 和 LocalCity两个服务类. 这俩API可以分别供用户在JavaScript中进行定位和城市确认. 1 本质上,Geolocation这个类是使用了支 ...

百度地图api使用,简单搜索+经纬度定位+自定义消息窗口

Android 百度地图API 定位 导航

看看这个利用百度地图定位并实现目的地导航的Demo. 首先看实现效果:                          进 入后首先会得到当前位置,在地图上显示出来.在输入框中输入目的地后,就会在地 ...

HTML5地理定位,百度地图API,知识点熟悉

推断浏览器的兼容问题: IE9+支持地理定位,FF Chrome新版支持地理定位  if (navigator.geolocation) {        alert('支持地理定位');   } e ...

如何利用【百度地图API】进行定位?非GPS定位

原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------- ...

随机推荐

Android Binder------ServiceManager启动分析

ServiceManager启动分析   简述: ServiceManager是一个全局的manager.调用了Jni函数,实现addServicew getService checkService ...

oracle的购买价格研究

如果你是一个架构师,在数据库选型上除了技术选型,更重要的可能是性价比的选择,而oracle是现今排名第一的数据库,因此对oracle的价格有所了解是必须的. 几个要点: 1.oracle授权(也就是购 ...

第一节 UPC 码

UPC码(Universal Product Code)是最早大规模应用的条码,其特性是一种长度固定.连续性的条码,目前主要在美国和加拿大使用,由於其应用范围广泛,故又被称万用条码. UPC码仅可用来 ...

Mac删除废纸篓中的单一文件和文件夹

http://www.macappbox.com/tips/159/ 通过Automator创建教程: 1.打开Automator并选择新建 2.选择服务类型 3.搜索Run Shell Script ...

一起来学Go --- (go的变量)

变量 变量是几乎所有编程语言中最基本的组成元素,从根本上说,变量相当于是一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间.go语言中的变 ...

【转载 | 笔记】IIS无法删除应该程序池 因为它包含X个应用程序

IIS无法删除应该程序池 因为它包含X个应用程序 今天代码主分支在vs2015创建了虚拟目录http://localhost/webapp指向的物理路径是E:\webapp 之后新开了一个分支把代码放 ...

vue中添加title中的小图标

webpack.prod.conf.js 这个文件中: 引入代码const path = require('path') :下面是进行配置: new HtmlWebpackPlugin({ filen ...

2017-11-28 中文编程语言之Z语言初尝试: ZLOGO 4

"中文编程"知乎专栏原文. 作者为本人. @TKT2016 开发的Z语言(ZLOGO是它的一个部分)是本人至今看到的唯一一个仍活跃开发的开源且比较完整的中文编程语言项目. 它的源码 ...

ICTCLAS中的HMM人名识别

http://www.hankcs.com/nlp/segment/ictclas-the-hmm-name-recognition.html 本文主要从代码的角度分析标注过程中的细节,理论谁都能说, ...

Visual Studio 2013 密钥

Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio Premium 2013 KEY(密钥) ...

php调用百度地图定位,php用百度地图API进行IP定位和GPS定位相关推荐

  1. 高德定位SDK踩坑-高精度模式下获取不到GPS定位(无网络环境)

    高德定位SDK踩坑-高精度模式下获取不到GPS定位(无网络环境) 关键字:定位模式 高精度模式 GPS定位 无网络 一句话描述问题:高精度模式在断网环境下不可靠.有几率重复报错或使用缓存定位,不使用G ...

  2. 如何定位Java源文件_webgisframe.java 源代码在线查看 - 实现网络GPS定位车辆的位置 资源下载 虫虫电子下载站...

    tcpSocket=socket; intNumber=count; ListGpsMessage=listbox; } /* public void InsertDatabase(String gp ...

  3. U880纯GPS定位综合解决方案,支持谷歌地图老虎地图百度地图

    一,背景篇 1. 在天国,我们都是不需要谷歌服务的,所有的国行都是没有谷歌服务的.但有太多的机油觉得也许天国之外的东西不一定坏,所以我们需要谷歌服务包(GMS). 我的第一个安卓机是摩托的里程碑,水货 ...

  4. 高德地图使用心得,百度地图使用心得

    1.环境配置 高德开发定位,地图,搜索,加覆盖物,这四个功能只需要要做三部 第一,下载三个架包,高德里面不涉及到3d地图没有.so文件,只需要三个架包,对于我们不需要的功能其他架包可以不用下载,比如不 ...

  5. Android有官方的GPS定位API,为什么还要使用百度/高德定位SDK ?

    1. 背景 小组在一个Demo项目中,图省事准备使用官方的GPS定位API. 但在我的印象中,官方的定位API是不好用的,一般都是用 高德地图/百度地图 的定位SDK的. 使用官方的定位API获取定位 ...

  6. 基于嵌入式QT界面GPS定位系统设计与实现

    目 录 第1章 绪论- -1 1.1 选题背景和意义- - .1 1.2 主要研究内容- - -1 第2章 GPS系统基础知识介绍- - - -2 2.1 GPS 定位的坐标系统- - - -2 2. ...

  7. android GPS 定位

    转自:http://blog.csdn.net/u013686019/article/details/47444839 Android:V4.2.2 Source Insight 写在前面 在漫长的A ...

  8. ip地址怎么精确定位 手机如何改ip地址位置

    ip地址精确定位 方法一 IP地址查询服务:使用在线的IP地址查询服务,如ip138.com.ip2location.com等,输入要查询的IP地址,系统将返回精确到地理位置的相关信息,包括国家.地区 ...

  9. 【错误记录】BLE 蓝牙搜索失效 ( 关闭了 GPS 定位导致的问题 | 蓝牙串口工具推荐 )

    文章目录 一.报错信息 二.解决方案 三.蓝牙串口工具推荐 一.报错信息 在手机上使用 BLE 蓝牙搜索功能 , 搜索不到蓝牙设备 ; 这种状态下可以根据蓝牙地址连接蓝牙设备 , 但是无法搜索到该设备 ...

  10. 基于单片机和GPS定位农田面积测量仪设计(毕业设计资料)

    106[电路方案]基于单片机和GPS定位农田面积测量仪设计 摘要: 基于单片机和GPS定位农田面积测量仪设计(原理图+源程序+bom表+演示视频) 通过串口1连接ATK-NEO-6M GPS模块,然后 ...

最新文章

  1. Spoken English(021)
  2. break stop java_在Java中使用break退出循环是不好的做法吗?
  3. html文件怎么改为php,请问你们怎么将html的文件的内容改变为php
  4. Apache Flink 零基础入门(二十)Flink部署与作业的提交
  5. javascript --- 再识闭包
  6. 一步步编写操作系统 57 门、调用门与RPL序 2
  7. 代腾飞(为自己名字作诗)
  8. 2022年浙江省电子设计大赛C题小车跟随系统
  9. 如何构建config文件
  10. r420服务器做系统,dell r420服务器 如何安装系统
  11. qnx 设备驱动开发_一种QNX系统的USB驱动加载方法与流程
  12. 百度内部发文:砥砺风雨坚守使命的背后
  13. WPS如何并排放置两张图片_表格技巧—Excel如何截图
  14. word设置页码不在第一页开始;删除页眉横线的小技巧
  15. spark登陆后闪一下就不见了,问题解决了。
  16. 国科大学习资料–模式识别--第四次作业
  17. css与背景相关的属性有哪些,css的背景background的相关属性
  18. ckfinder 2.3 破解
  19. 记录:页面锚定 点击a标签进行锚定到指定的ID
  20. word-spacing letter-spacing white-space 分辨

热门文章

  1. js 修改对象的键名,遍历动态传值
  2. 四种企业传输大文件的方法
  3. hive 和 Hadoop 浅析
  4. 信息系统项目管理师第三版 pdf可编辑_信息系统项目管理师教程(第三版)——可行性研究...
  5. 再生龙U盘做系统镜像及系统还原【系统恢复,图文并茂】
  6. nero 9 制作DVD MTV 光盘
  7. 企业如何运用MES管理系统破除生产暗箱,打造透明化工厂?
  8. solidworks渲染材质库_solidworks材质库怎么添加?SolidWorks软件常用材质库添加和使用方法...
  9. CAD二次开发 ZOOM 居中视野
  10. 学习办公常用软件分享下载