按地區搜索:
http://api.map.baidu.com/geosearch/v3/local?region=%E5%8E%A6%E9%97%A8&ak=pWiNP7mGeptewlpldEdv3Ur3&geotable_id=*****
按位置中心點搜索(距離中心位置1800米):
http://api.map.baidu.com/geosearch/v3/nearby?ak=pWiNP7mGeptewlpldEdv3Ur3&geotable_id=***&location=118.145572,24.49264&radius=1800
程序代碼如下:
首先要把數據錄入到百度云數據庫
用接口提交位置信息,坐標經緯度到百度lbs云數據庫。
百度提供可視化的LBS云數據庫管理:
http://lbsyun.baidu.com/datamanager/datamanage
已下是我寫的一個提交數據接口:
這里是提交或更新一個lbs數據。
- function ptolbs($data,$lbsid){
- if($lbsid<=0){
- $purl = 'http://api.map.baidu.com/geodata/v3/poi/create';
- }else{
- $data['id']=$lbsid;
- $purl = "http://api.map.baidu.com/geodata/v3/poi/update";
- }
- $data['ak']="pWiNP7mGeptewlpldEdv3Ur3";
- $data['geotable_id']="***";//你的數據庫ID
- $data['coord_type']="3";
- $re = curlpost($purl,$data);
- $re = json_decode($re,true);
- if($re["status"]==0){
- $lbsid =$re['id'];
- }else{
- $lbsid = -1;
- }
- return $lbsid;
- }
- function curlpost($c_url,$data)
- {
- $curl = curl_init(); // 啟動一個CURL會話
- curl_setopt($curl, CURLOPT_URL, $c_url); // 要訪問的地址
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器
- // curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer
- curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數據包
- curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環
- curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
- $tmpInfo = curl_exec($curl); // 執行操作
- if (curl_errno($curl)) {
- echo 'Errno'.curl_error($curl);//捕抓異常
- } //Vevb.com
- curl_close($curl); // 關閉CURL會話
- return $tmpInfo; // 返回數據
- }
原理很簡單就是通過我們申請的key 帶在curl中post給百度api,然后百度返回查詢對應的坐標與數據給我們。
新聞熱點
疑難解答