安卓百度地圖(二)定位顯示,離線地圖的下載使用與地圖的交互

其他文章:
安卓百度離線地圖的下載以及使用
安卓百度地圖(一)定位功能的實現(xiàn)宵蕉、周邊POI的檢索
安卓百度地圖(三)繪制點酝静、線等圖層信息
安卓百度地圖(四)城市,周邊羡玛,區(qū)域檢索
安卓百度地圖(五)百度地圖路線規(guī)劃
安卓百度地圖(六)鷹眼軌跡的上傳别智,歷史軌跡的顯示
安卓百度地圖(七)地理圍欄的建立與使用

本文主要針對百度地圖的顯示,以及離線地圖的下載使用

一 地圖SDk簡介

百度地圖SDK是一套應(yīng)用程序接口稼稿, 通過調(diào)用地圖SDK接口薄榛,開發(fā)者可以輕松訪問百度地圖的服務(wù)和數(shù)據(jù),構(gòu)建功能豐富让歼、交互性強(qiáng)的地圖類應(yīng)用程序敞恋。

二 地圖顯示

XML:

<com.baidu.mapapi.map.TextureMapView
    android:id="@+id/mTexturemap"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 </com.baidu.mapapi.map.TextureMapView>

Java:
注意:不要忘記SDKInitializer.initialize(getApplicationContext());

private TextureMapView mMapView;
private BaiduMap mBaiduMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   SDKInitializer.initialize(getApplicationContext());
   setContentView(R.layout.activity_map);
   mMapView = (TextureMapView) findViewById(R.id.mTexturemap);
   mBaiduMap = mMapView.getMap();
 }

2.1 切換地圖類型

百度地圖SDK為您提供了3種類型的地圖資源(普通矢量地圖、衛(wèi)星圖和空白地圖)谋右,BaiduMap 類提供圖層類型常量硬猫,詳細(xì)如下:

類型名稱 說明
MAP_TYPE_NORMAL 普通地圖(包含3D地圖)
MAP_TYPE_SATELLITE 衛(wèi)星圖
MAP_TYPE_NONE 空白地圖

通過mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);可以切換地圖類型
通過mBaiduMap.setBaiduHeatMapEnabled(true)開啟百度城市熱力圖

三 定位顯示

注意:設(shè)置返回的坐標(biāo)類型為bd09ll,否則無法直接在地圖上顯示

LocationClientOption mOption = new LocationClientOption();
mOption.setCoorType("bd09ll");
mLocationClient.setLocOption(mOption);

3.1 設(shè)置中心點改执,顯示比例

開啟定位后啸蜜,然后在得到保存地理位置信息的bdLocation后,我們進(jìn)入地圖通常有一個中心點辈挂,百度地圖默認(rèn)為北京天安門衬横。因為我們這里需要顯示定位當(dāng)當(dāng)前位置,所以需要自己設(shè)置中心點终蒂,以及地圖顯示比例蜂林。
因為我們只需要在首次進(jìn)入地圖時遥诉,設(shè)置中心點:

private boolean is_First_locate = true;

if (is_First_locate) {
      is_First_locate = false;
      LatLng ll = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude());
      MapStatus.Builder builder = new MapStatus.Builder();
      //設(shè)置縮放中心點;縮放比例噪叙;
     builder.target(ll).zoom(18.0f);
     //給地圖設(shè)置狀態(tài)
     mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
}

3.2 定位當(dāng)前位置

3.2.1 開啟定位圖層

mBaiduMap.setMyLocationEnabled(true);

3.2.2 根據(jù)經(jīng)緯度定位到當(dāng)前位置

 MyLocationData locationData = new MyLocationData.Builder()
         //設(shè)置精度圈
         .accuracy(bdLocation.getRadius())
         //設(shè)置方向
         .direction(bdLocation.getDirection())
         .latitude(bdLocation.getLatitude())
         .longitude(bdLocation.getLongitude())
         .build();
 mBaiduMap.setMyLocationData(locationData);

3.2.3 自定義圖標(biāo)突那,定位模式等

三種定位模式:

類型名稱 說明
FOLLOWING 跟隨態(tài),保持定位圖標(biāo)在地圖中心
NORMAL 普通態(tài):更新定位數(shù)據(jù)時不對地圖做任何操作
COMPASS 羅盤態(tài)构眯,顯示定位方向圈愕难,保持定位圖標(biāo)在地圖中心
//設(shè)置定位模式(遇到一個問題,設(shè)置定位模式為非普通太出現(xiàn)問題)
MyLocationConfiguration.LocationMode mCurrentMode = MyLocationConfiguration.LocationMode.NORMAL;
//自定義定位圖標(biāo)
BitmapDescriptor mCurrentMarker = BitmapDescriptorFactory .fromResource(R.drawable.arrow);
//保存自定義樣式(定位模式惫霸,是否開啟方向猫缭,自定義圖標(biāo)樣式,自定義精度圈填充顏色壹店,自定義精度圈邊框顏色)
MyLocationConfiguration config = new MyLocationConfiguration(mCurrentMode, true, mCurrentMarker,0xAAFFFF88,0xAA00FF00);
mBaiduMap.setMyLocationConfiguration(config);//設(shè)置自定義樣式

四 離線的圖的下載使用

關(guān)于百度地圖的離線下載及使用請移步安卓百度離線地圖的下載以及使用

五 地圖交互

5.1 地圖控件

百度地圖logo的顯示位置猜丹、指南針的顯隱、比例尺的顯隱硅卢、縮放按鈕的顯隱射窒。

//地圖Logo默認(rèn)在左下角顯示,不可以移除,地圖Logo不允許遮擋.
mMapView.setLogoPosition(LogoPosition.logoPostionleftBottom);
//可通過以下方法可以設(shè)置地圖邊界區(qū)域将塑,來避免地圖Logo遮擋脉顿。
mBaiduMap.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);

//指南針默認(rèn)為開啟狀態(tài),可以關(guān)閉顯示 点寥。設(shè)置方法如下:
mUiSettings = mBaiduMap.getUiSettings();
//實例化UiSettings類對象 
mUiSettings.setCompassEnabled(enable);

//比例尺默認(rèn)為開啟狀態(tài)艾疟,可以關(guān)閉顯示。設(shè)置方法如下:
mMapView. showScaleControl(enable)敢辩;
//可通過mMapView.getMapLevel獲取當(dāng)前地圖級別下比例尺所表示的距離大小蔽莱。
mBaiduMap.setMaxAndMinZoomLevel(float max, float min);

//通過如下方式控制縮放按鈕是否顯示:
mMapView. showZoomControls(enable);

5.2 地圖手勢

地圖平移的開關(guān)戚长、縮放手勢的開關(guān)盗冷、3D功能的開關(guān)、地圖旋轉(zhuǎn)的開關(guān)同廉、禁止所有手勢的開關(guān)仪糖。

//控制是否啟用或禁用平移的功能,默認(rèn)開啟mUisettings. setScrollGesturesEnabled(enabled);

//控制是否啟用或禁用縮放手勢恤溶,默認(rèn)開啟mUisettings. setZoomGesturesEnabled(enabled);

//控制是否啟用或禁用俯視(3D)功能乓诽,默認(rèn)開啟
mUisettings. setOverlookingGesturesEnabled(enabled);

//控制是否啟用或禁用地圖旋轉(zhuǎn)功能帜羊,默認(rèn)開啟
mUisettings .setRotateGesturesEnabled(enabled);

//控制是否一并禁止所有手勢咒程,默認(rèn)關(guān)閉。
mUisettings .setAllGesturesEnabled(enabled)

5.3 地圖事件交互

百度地圖事件交互:key驗證時間監(jiān)聽讼育、廣播監(jiān)聽帐姻、地圖事件監(jiān)聽地圖狀態(tài)改變稠集、各種手勢單擊饥瓷、雙擊截屏)等剥纷。詳情查看官網(wǎng)百度地圖事件交互

下面做簡單介紹:

5.3.1 單擊事件

OnMapClickListener listener = new OnMapClickListener() {  
    /** 
    * 地圖單擊事件回調(diào)函數(shù) 
    * @param point 點擊的地理坐標(biāo) 
    */  
    public void onMapClick(LatLng point){  
    }  
    /** 
    * 地圖內(nèi) Poi 單擊事件回調(diào)函數(shù) 
    * @param poi 點擊的 poi 信息 
    */  
    public boolean onMapPoiClick(MapPoi poi){  
    }  
};

5.3.2 雙擊事件

OnMapDoubleClickListener listener = new OnMapDoubleClickListener() {  
    /** 
    * 地圖雙擊事件監(jiān)聽回調(diào)函數(shù) 
    * @param point 雙擊的地理坐標(biāo) 
    */  
    public void onMapDoubleClick(LatLng point){  
    }  
};

5.3.3 地圖長按事件監(jiān)聽接口:

OnMapLongClickListener listener = new OnMapLongClickListener() {  
    /** 
    * 地圖長按事件監(jiān)聽回調(diào)函數(shù) 
    * @param point 長按的地理坐標(biāo) 
    */  
    public void onMapLongClick(LatLng point){  
    }  
};

5.3.4 地圖 Marker 覆蓋物點擊事件監(jiān)聽接口:

OnMarkerClickListener listener = new OnMarkerClickListener() {  
    /** 
    * 地圖 Marker 覆蓋物點擊事件監(jiān)聽函數(shù) 
    * @param marker 被點擊的 marker 
    */  
    public boolean onMarkerClick(Marker marker){  
    }  
};

5.3.5 地圖定位圖標(biāo)點擊事件監(jiān)聽接口:

OnMyLocationClickListener listener = new OnMyLocationClickListener() {  
    /** 
    * 地圖定位圖標(biāo)點擊事件監(jiān)聽函數(shù) 
    */  
    public boolean onMyLocationClick(){  
    }  
};

5.3.6 地圖截屏回調(diào)接口:

SnapshotReadyCallback callback = new SnapshotReadyCallback() {  
    /** 
    * 地圖截屏回調(diào)接口 
    * @param snapshot 截屏返回的 bitmap 數(shù)據(jù) 
    */  
    public void onSnapshotReady(Bitmap snapshot){  
    }  
};

5.4 地圖方法交互

百度地圖方法交互:改變地圖縮放等級設(shè)置地圖操作區(qū)距屏幕的距離呢铆、設(shè)置地圖顯示范圍晦鞋、 改變地圖類型和控件顯示狀態(tài)改變地圖手勢的中心點棺克、隱藏底圖標(biāo)注等悠垛。詳情查看官網(wǎng)百度地圖事件交互

本文主要做于收集整理筆記使用,關(guān)于文章的源碼娜谊,請移步我的GitHub

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末确买,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子纱皆,更是在濱河造成了極大的恐慌湾趾,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件派草,死亡現(xiàn)場離奇詭異搀缠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)近迁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門胡嘿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钳踊,你說我怎么就攤上這事衷敌。” “怎么了拓瞪?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵缴罗,是天一觀的道長。 經(jīng)常有香客問我祭埂,道長面氓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任蛆橡,我火速辦了婚禮舌界,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泰演。我一直安慰自己呻拌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布睦焕。 她就那樣靜靜地躺著藐握,像睡著了一般靴拱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猾普,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天袜炕,我揣著相機(jī)與錄音,去河邊找鬼初家。 笑死偎窘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溜在。 我是一名探鬼主播评架,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼炕泳!你這毒婦竟也來了纵诞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤培遵,失蹤者是張志新(化名)和其女友劉穎浙芙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體籽腕,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡嗡呼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了皇耗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片南窗。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖郎楼,靈堂內(nèi)的尸體忽然破棺而出万伤,到底是詐尸還是另有隱情,我是刑警寧澤呜袁,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布敌买,位于F島的核電站,受9級特大地震影響阶界,放射性物質(zhì)發(fā)生泄漏虹钮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一膘融、第九天 我趴在偏房一處隱蔽的房頂上張望芙粱。 院中可真熱鬧,春花似錦氧映、人聲如沸春畔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拐迁。三九已至蹭劈,卻和暖如春疗绣,著一層夾襖步出監(jiān)牢的瞬間线召,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工多矮, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留缓淹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓塔逃,卻偏偏與公主長得像讯壶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子湾盗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容