百度地圖上收錄的是常見的位置信息,而如果有一些特殊的未被百度地圖收錄的地點,百度提供的LBS 云服務可以讓我們很方便的自己去收錄地點信息(如景點的衛生間等)。推薦了解黑馬程序員java培訓課程。
1. LBS 云簡介
LBS 是百度地圖針對LBS 開發者推出的平臺級服務,結合已有的地圖API 和SDK 服務,通過開放服務端存儲和計算能力,提供海量位置數據的實時存儲、檢索、展示一體化解決方案。
基于LBS 實現1:云端存儲2、云端檢索3、云地理編碼4、云地理逆編碼
2. LBS 注冊和密鑰申請
百度地圖開放平臺網址
http://lbsyun.baidu.com/
使用LBS 云服務必須擁有百度賬號,登陸賬號后申請開啟LBS 云服務功能,要使用LBS云服務必須申請密鑰。
2.1 密鑰應用類型
選擇需要的應用類型,對于后端申請服務端; 通過js 代碼就申請瀏覽器端。
2.2 勾選需要的服務
2.3 設置檢驗方式和白名單
此處ip 地址格式輸錯會有提示(以上是服務端配置)
瀏覽器端稍有不同
3. LBS 配額管理
百度針對LBS 云服務提供了一定的配額,超過免費額度就要花錢去買
這個功能提供流量圖和余額明細,管理起來還是很方便。一般測試開發和小規模試用是足夠了,這點百度還做的不錯。
4. LBS 資料下載
百度提供了詳細的開發說明,可下載文檔和代碼例子
注意LBS 云分為云存儲和云檢索
云存儲是負責新建,刪除和修改表的類似數據庫的DML 語句,云檢索才是真正查詢數據的。
5. LBS 建表和插入數據
LBS 可以直接頁面上根據百度地圖插入數據
點擊左側
可以點右側創建按鈕新建表
1. 創建表名
2. 設置字段
LBS 的表中設置有默認字段,除默認字段也可手動添加
3. 發布
如果要啟用,就勾選
2.添加信息
點擊表數據管理
根據十字星在地圖上選點,然后填寫信息(一般經度,緯度不用變)
保存后就進數據存入
3. 后臺代碼調用
參考文檔
@Test
// 建立表geotable
public void demo1() throws ClientProtocolException, IOException {
// 1、創建httpClient 對象
HttpClient client = HttpClients.createDefault();
// 2、請求對象
HttpPost httpPost = new HttpPost(
"http://api.map.baidu.com/geodata/v3/geotable/create");
// 3、綁定參數
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", "javaee41"));
nameValuePairs.add(new BasicNameValuePair("geotype", "1"));
nameValuePairs.add(new BasicNameValuePair("is_published", "1"));
nameValuePairs.add(new BasicNameValuePair("ak","a9F3QkTyeoyKAt2iR5irH2xRzWSBaqzk"));
// name=mytable4&geotype=1
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs,Charsets.UTF_8));
// 4、發送請求 HttpResponse httpResponse = client.execute(httpPost);
// 5、打印結果數據
HttpEntity httpEntity = httpResponse.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
}
@Test
// 查詢表
public void demo2() throws ClientProtocolException, IOException {
// 1、創建httpClient 對象
HttpClient client = HttpClients.createDefault();
// 2、請求對象
HttpGet httpGet = new HttpGet("http://api.map.baidu.com/geodata/v3/geotable/list?ak=a9F3QkTyeoyKAt2iR5irH2xRzWSBaqzk");
// 3、發送請求
HttpResponse httpResponse = client.execute(httpGet);
// 4、打印結果數據
HttpEntity httpEntity = httpResponse.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
}
@Test
// 查詢表
public void demo4() throws ClientProtocolException, IOException {
// 1、創建httpClient 對象
HttpClient client = HttpClients.createDefault();
// 2、請求對象
HttpGet httpGet = new HttpGet("http://api.map.baidu.com/geodata/v3/column/list?ak=a9F3QkTyeoyKAt2iR5irH2xRzWSBaqzk&geotable_id=191874");
// 3、發送請求
HttpResponse httpResponse = client.execute(httpGet);
// 4、打印結果數據 HttpEntity httpEntity = httpResponse.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
}
@Test
// 查詢表
public void demo5() throws ClientProtocolException, IOException {
// 1、創建httpClient 對象
HttpClient client = HttpClients.createDefault();
// 2、請求對象
HttpGet httpGet = new HttpGet("http://api.map.baidu.com/geodata/v3/poi/list?ak=a9F3QkTyeoyKAt2iR5irH2xR
zWSBaqzk&geotable_id=191874");
// 3、發送請求
HttpResponse httpResponse = client.execute(httpGet);
// 4、打印結果數據
HttpEntity httpEntity = httpResponse.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
}
猜你喜歡
JVM內存模型詳細介紹