按地區搜尋:
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);//捕抓異常
}
curl_close($curl); // 關閉CURL會話
return $tmpInfo; // 返回資料
}
原理很簡單就是通過我們申請的key 帶在curl中post給百度api,然後百度返回查詢對應的座標與資料給我們。