1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php利用百度地图API进行IP定位和GPS定位

php利用百度地图API进行IP定位和GPS定位

时间:2023-02-17 09:38:21

相关推荐

php利用百度地图API进行IP定位和GPS定位

后端开发|php教程

php利用百度地图API进行IP定位和GPS定位

后端开发-php教程

最近在做一个手机端的webapp地图应用,而核心内容当然是定位了,但是定位的话有几种方式,IP定位,GPS定位,基站定位(这个貌似webapp用不了), 那么剩下核心的gps定位和ip定位了,我们知道,html5有定位API,但是该API拿到的GPS数据是硬件坐标,无法直接显示在地图上。 后来上百度LBS云看到有地图IP定位API和GPS坐标转换API,地址:/map/ 百度地图API的调用需要申请KEY,这里就不具体介绍了,直接贴上本人写了两个关键方法,为了方便前台调用,返回数据采用以下格式

flash留言本源码,vscode获取路径,ubuntu ip,安装tomcat软件,sqlite3 数据对比,ping服务插件,手机前端页面用什么框架好,爬虫工程师招聘广州,php 时间排序,顺昌正规seo介绍,淘宝客采集网站哪个好,wap手机网页游戏源码,手机h5网站模板下载lzw

{ address: "北京市海淀区西二旗北路", province: "北京市", city: "北京市", street: "西二旗北路", street_number: "", city_code: 131, lng: 116.3207676804, lat: 40.064084055578}

核心类

动软商城系统源码,vscode回退断点,iOS传文件给Ubuntu,doc启动tomcat,安卓删除sqlite,苹果重力插件,网站的框架和前端,蜥蜴和爬虫脑,php安装插件,汕头seo优化方案,高端酒水食品类企业网站织梦,网页 居中自适应,黄金价格模板网站源码,咨询单页面源码,easyui管理系统源码下载,派单o2o小程序微擎lzw

<?php /** * @author xialei */class map{ private static $_instance; const REQ_GET = 1; const REQ_POST = 2; /** * 单例模式 * @return map */ public static function instance() { if (!self::$_instance instanceof self) { self::$_instance = new self; } return self::$_instance; } /** * 执行CURL请求 * @author: xialei * @param $url * @param array $params * @param bool $encode * @param int $method * @return mixed */ private function async($url, $params = array(), $encode = true, $method = self::REQ_GET) { $ch = curl_init(); if ($method == self::REQ_GET) { $url = $url . ? . http_build_query($params); $url = $encode ? $url : urldecode($url); curl_setopt($ch, CURLOPT_URL, $url); } else { curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); } curl_setopt($ch, CURLOPT_REFERER, 百度地图referer); curl_setopt($ch, CURLOPT_USERAGENT, Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $resp = curl_exec($ch); curl_close($ch); return $resp; } /** * ip定位 * @param string $ip * @return array * @throws Exception */ public function locationByIP($ip) { //检查是否合法IP if (!filter_var($ip, FILTER_VALIDATE_IP)) { throw new Exception(ip地址不合法); } $params = array( ak => 百度地图API KEY, ip => $ip, coor => d09ll//百度地图GPS坐标 ); $api = http://api./location/ip; $resp = $this->async($api, $params); $data = json_decode($resp, true); //有错误 if ($data[status] != 0) { throw new Exception($data[message]); } //返回地址信息 return array( address => $data[content][address], province => $data[content][address_detail][province], city => $data[content][address_detail][city], district => $data[content][address_detail][district], street => $data[content][address_detail][street], street_number => $data[content][address_detail][street_number], city_code => $data[content][address_detail][city_code], lng => $data[content][point][x], lat => $data[content][point][y] ); } /** * GPS定位 * @param $lng * @param $lat * @return array * @throws Exception */ public function locationByGPS($lng, $lat) { $params = array( coordtype => wgs84ll, location => $lat . , . $lng, ak => 百度地图API KEY, output => json, pois => 0 ); $resp = $this->async(http://api./geocoder/v2/, $params, false); $data = json_decode($resp, true); if ($data[status] != 0) { throw new Exception($data[message]); } return array( address => $data[ esult][formatted_address], province => $data[ esult][addressComponent][province], city => $data[ esult][addressComponent][city], street => $data[ esult][addressComponent][street], street_number => $data[ esult][addressComponent][street_number], city_code=>$data[ esult][cityCode], lng=>$data[ esult][location][lng], lat=>$data[ esult][location][lat] ); }}

调用方法就不说了。稍微看一下源代码就可以知道的

微信卡券源码,ipad上有没有vscode,ubuntu fg命令,tomcat文件加注释,个人玩爬虫,php dll扩展下载,太原专业seo推广平台,财务记账网站源码,手机dede模板修改lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。