標籤:百度地圖 android sdk poi檢索
百度地圖 SDK 不僅為廣大開發人員提供了炫酷的地圖展示效果、豐富的覆蓋物圖層,更為廣大開發人員提供了多種 LBS 檢索的能力。通過這些介面,開發人員可以輕鬆的訪問百度的 LBS 資料,豐富自己的移動端地圖應用。
目前百度地圖 SDK 為開發人員提供的檢索服務有:
POI 檢索:可以檢索百度 POI 資料資訊;
線路規劃:利用百度的引擎協助開發人員規劃線路;
線上建議檢索、短連結分享、地理編碼等等....
本文將以一個很簡單的 POI 城市內檢索為例,像廣大開發人員介紹介面的使用。
第一步,選擇並下載 SDK;
這個例子我們只使用檢索功能,因此我們到百度 LBS 開放平台的 Android 的統一資源下載平台下載檢索功能模組就可以了,具體地址如下:http://lbsyun.baidu.com/sdk/download
第二步,建立 Android 工程,並將下載好的 SDK 匯入工程中;
匯入完成後效果如所示:
第三步,設計應用程式的互動介面;
第四步,在 AndroidManifest 中添加要求的權限和 SDK 開發所需要的 Key;
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<meta-data android:name="com.baidu.lbsapi.API_KEY"android:value="GBm9SbM00C7Cd6vFi2evzSgK" />
注意上面的 key 請開發人員換成自己申請的 key,具體方法請參考之前的部落格介紹。
第五步,編程;
分別定義三個變數,PoiSearch、PoiCitySearchOption、OnGetPoiSearchResultListener。從這三個名字大家也能看得出,這三個變數分別是檢索對象、檢索參數和檢索結果的監聽方法。
在執行 POI 檢索之前,需要先初始化 PoiSearch 對象,方法如下:
poiSearch = PoiSearch.newInstance();
初始化完成之後,緊接著需要設定它的監聽方法,注意 SDK 中所有的檢索請求都是非同步實現的,代碼如下:
poiSearch.setOnGetPoiSearchResultListener(onGetPoiSearchResultListener);
準備工作完成後,我們在 Button 的點擊響應中,添加真正的檢索執行代碼,如下所示:
button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubpoiCitySearchOption = new PoiCitySearchOption().city(city.getText().toString()).keyword(keyword.getText().toString());poiSearch.searchInCity(poiCitySearchOption);}});補充一下監聽方法的實現,如下所示:
OnGetPoiSearchResultListener onGetPoiSearchResultListener = new OnGetPoiSearchResultListener() {@Overridepublic void onGetPoiResult(PoiResult poiResult) {// TODO Auto-generated method stubString poiname = poiResult.getAllPoi().get(0).name;String poiadd = poiResult.getAllPoi().get(0).address;String idString = poiResult.getAllPoi().get(0).uid;textView.setText("第一條結果是:\n名稱=["+poiname+"]\nID = ["+idString+ "] \n地址=["+poiadd+"]");}@Overridepublic void onGetPoiDetailResult(PoiDetailResult arg0) {// TODO Auto-generated method stub}};如上的監聽方法是將結果中得第一條資訊進行了展示,執行程式如效果:
到這,我們就實現了利用百度地圖 Android SDK 的一個最簡單的 POI 檢索樣本。更多功能歡迎大家登陸我們的官方網站進行查詢,謝謝!
http://developer.baidu.com/map/index.php?title=androidsdk
百度 LBS 開放平台向廣大開發人員推出開發人員眾測計劃,參與我們的研發測試,第一時間體驗我們新產品的功能,提 BUG 還能獲獎,是不是很爽呢?!~
詳細資料請參考:http://bbs.lbsyun.baidu.com/viewthread.php?tid=15300&extra=page%3D1
百度地圖 Android SDK - 檢索功能使用的簡單樣本