【百度地圖】Android實現(xiàn)地圖展示、定位、選點、地點查詢和地點模糊查詢功能

聲明:原創(chuàng)作品,轉(zhuǎn)載請注明出處:http://www.itdecent.cn/p/bb14753d441f

1、集成百度地圖sdk

請查看百度地圖開放平臺,這里有很詳細的教程。

2、地圖展示功能

將地圖控件放入到當前頁面的布局中即可,如下:

MapView

在頁面代碼中,通過id獲取到MapView的對象,再MapView的getMap()方法,可以獲取到BaiduMap的對象,可以通過這個對象設置地圖的縮放級別。

示例代碼如下:

displayMap

注意:MapView應該在activity的onDestroy()方法中調(diào)用其destroy()方法。

3、定位功能

定位功能主要涉及到2個類和1個回調(diào)接口,即:LocationClient、LocationClientOption和BDLocationListener。

簡單介紹一下:

LocationClient類:可以通過這個類的對象,調(diào)用start()方法,來定位到當前位置,調(diào)用stop()方法,來停止定位。

LocationClientOption類:用來設置一系列的參數(shù),對LocationClient進行配置(用LocationClient調(diào)用setLocOption()方法)。

BDLocationListener接口:可以將這個接口設置給LocationClient類(用LocationClient調(diào)用registerLocationListener()方法),就可以在這個監(jiān)聽中,獲取到定位的信息。

示例代碼如下:

定位模塊

4、選點功能

這個功能涉及到BaiduMap類、BitmapDescriptor類和OverlayOptions類。

首先,在MapView的clickable屬性為true的情況下,通過BaiduMap類,對其設置點擊監(jiān)聽。

然后在監(jiān)聽中,將覆蓋物設置到所選的點上。

示例代碼如下:

setOverlay

注意:覆蓋物的bitmap不要在每次使用時都重新獲取,只需在onCreate中初始化一次即可,否則會導致性能問題。

5、地點查詢

這個功能主要涉及到GeoCoder類和OnGetGeoCoderResultListener接口。

GeoCoder類通過newInstance()方法來獲取對象。

它的對象可以通過調(diào)用setOnGetGeoCodeResultListener方法來設置監(jiān)聽。

并且可以通過geocode方法來進行地點查詢(即獲取其坐標),和通過reverseGeoCode方法來進行反向查詢(即通過坐標來獲取地點)。

示例代碼如下:

geoCoder

注意:GeoCoder應該在activity的onDestroy()方法中調(diào)用其destroy()方法。

6、地點模糊查詢

這個功能主要涉及到SuggestionSearch類和OnGetSuggestionResultListener接口。

SuggestionSearch類通過newInstance()方法來獲取對象。

它的對象可以通過調(diào)用setOnGetSuggestionResultListener方法來設置監(jiān)聽。

并且可以通過requestSuggestion方法來進行地點查詢,這里獲取到的是SuggestionResult對象,可以通過其getAllSuggestions()

方法來獲取到查詢的列表等信息。

示例代碼如下:

suggestionSearch

注意:SuggestionSearch應該在activity的onDestroy()方法中調(diào)用其destroy()方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容