php百度地图坐标绘制矩形 调用百度poi搜索矩形区域内数据
2017-07-12 19:38
656 查看
首先贴出三个重要的方法
在来看控制器方法
尝试ns失败只有用ak方式ip来搞了
/** * @date:2017-07-12 9:23 * @auth:网络搜索 * @parame :百度地图php版调用方法 */ function caculateAKSN($ak, $sk, $url, $querystring_arrays, $method = 'GET') { if ($method === 'POST'){ ksort($querystring_arrays); } $querystring = http_build_query($querystring_arrays); return md5(urlencode($url.'?'.$querystring.$sk)); } /** * @date:2017-07-12 10:57 * @auth:百度地图文档 * 百度坐标系转换成标准GPS坐系 * @param float $lnglat 坐标(如:106.426, 29.553404) * @return string 转换后的标准GPS值: */ function BD09LLtoWGS84($lnglat){ // 经度,纬度 $lnglat = explode(',', $lnglat); list($x,$y) = $lnglat; $Baidu_Server = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x={$x}&y={$y}"; $result = @file_get_contents($Baidu_Server); $json = json_decode($result); if($json->error == 0){ $bx = base64_decode($json->x); $by = base64_decode($json->y); $GPS_x = 2 * $x - $bx; $GPS_y = 2 * $y - $by; return $GPS_x.','.$GPS_y;//经度,纬度 }else return $lnglat; } /** * @date:2017-07-12 11:34 * @auth:leishaofa *@parame根据gps一个坐标绘制一个矩形 * @parame$lng 经度 * @parame$lat 纬度 * @parame $distance一千米 */ function resultmap($lng,$lat,$distance=1){ $fEARTH_RADIUS=6371;//地球平均半径 $dlng=2*asin(sin($distance / (2*$fEARTH_RADIUS))/cos(deg2rad($lat))); $dlng=rad2deg($dlng); $dlat=$distance/$fEARTH_RADIUS; $dlat=rad2deg($dlat); return array( 'left-top'=>array('lat'=>$lat+$dlng,'lng'=>$lng-$dlng), 'right-top'=>array('lat'=>$lat+$dlng,'lng'=>$lng+$dlng), 'left-bottom'=>array('lat'=>$lat-$dlng,'lng'=>$lng-$dlng), 'right-bottom'=>array('lat'=>$lat-$dlng,'lng'=>$lng+$dlng) ); }
在来看控制器方法
$gps=explode(',',$this->BD09LLtoWGS84('114.282167,30.553489')); $dao=$this->resultmap($gps[0],$gps[1]);
$url="http://api.map.baidu.com/place/v2/search?query=便利店,&bounds=".$dao['left-bottom']['lat'].", ".$dao['left-bottom']['lng'].",".$dao['right-top']['lat'].",".$dao['right-top']['lng'].
"&output=json&page_size=10&page_num=1&ak="C('BAIDUAK');$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, false); //表示需要response headercurl_setopt($ch, CURLOPT_NOBODY, false); //表示需要response bodycurl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);curl_setopt($ch, CURLOPT_TIMEOUT, 120);$result = curl_exec($ch);print_r($result);
尝试ns失败只有用ak方式ip来搞了
相关文章推荐
- 百度api商圈范围图修改获取坐标数据、点是否在区域范围判断、js解析创建excel
- php 获得ip地址区域及运营商 抓取百度的数据
- 百度地图绘制地图区域,并返回坐标
- Java调用百度API将GPS坐标转为百度地图坐标
- 百度地图 定位,地图中心坐标,拖动后获取地图中心点坐标,poi搜索
- 关于 android百度地图 调用 地理位置 经纬度坐标,只调用一次的解决方法,通知栏不总是 搜索 GPS 。。。
- 百度地图绘制矩形区域
- 【百度地图API】交你如何用百度地图搜索自己的数据!不需数据库!
- php ss7.5的数据调用 (笔记)
- PHP实现获取百度top50的搜索排行关键字
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- c#调用百度搜索
- 月份信息二维坐标图绘制(全部是随机数据,包括计算的月份数,附源代码)
- 调用百度“搜索建议(BaiduSuggestion)”的 API
- 站内搜索 调用方法 (谷歌 百度 雅虎)
- 使用百度地图进行区域搜索与定位
- 百度搜索结果整合百度地图 强化本地搜索
- 【百度地图API】交你如何用百度地图搜索自己的数据!不需数据库!
- 百度测试商品搜索 已收录京东等17家网站数据