百度地圖開發-顯示地圖默認界面 03
顯示地圖
上一期,我們成功匯入百度地圖SDK,下來就需要驗證我們匯入的SDK和配置的環境代碼是否正常,如果能在app上,顯示出默認的百度地圖界面,則證明匯入和配置SDK成功,若不能顯示,則說明配置有問題,需要仔細檢查,看是否配置資訊填寫有誤,
之前的文章已經申請了密鑰并在專案的AndroidManifest.xml檔案中進行了配置,同時也添加了權限宣告,這里的申明只是針對于舊版本設備(API低),新版本需要手動動態申請權限才可以,否則無法使用百度地圖相關服務,那么接下來就撰寫相關代碼,實作百度地圖默認地圖的顯示功能,
顯示默認地圖
當相關配置資訊完成后,通過下面三步就可以顯示出百度地圖的默認地圖,
- 1、在布局檔案中添加地圖容器
在你需要放置地圖的視圖中,添加地圖示簽,進行一些基本的設定,比如大小,間距等,

- 2、地圖初始化操作
這里需要注意,下面兩行代碼,是在使用百度地圖前必須提前宣告的陳述句,因為它是作用是初始化百度地圖SDK,如果不宣告或者宣告的地方不對,則后期百度地圖無法成功加載,【我在這里就吃過虧,順序寫反了,一直除錯不出來哪里出錯了,】

這兩句代碼,必須放在MainActivity的onCreate()方法中,在第一行進行宣告,它們是進行百度地圖SDK的初始化操作,第一個是傳遞背景關系到SDK中,第二個設設定其SDK內部的坐標格式,默認為BD09LL坐標,(切莫將這兩句放在程式剛開始執行的地方,否則后續無法使用百度地圖),
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化地圖SDK
//在使用SDK各組件之前初始化context資訊,傳入ApplicationContext
SDKInitializer.initialize(getApplicationContext());
//自4.3.0起,百度地圖SDK所有介面均支持百度坐標和國測局坐標,用此方法設定您使用的坐標型別.
//包括BD09LL和GCJ02兩種坐標,默認是BD09LL坐標,
SDKInitializer.setCoordType(CoordType.BD09LL);
setContentView(R.layout.activity_main);
}
上面代碼就是在這個測驗專案中放置的位置,
- 3、創建地圖Activity,管理其生命周期
在新建的testandroid工程中,在視圖界面,創建MAP顯示,接著在后臺代碼宣告并定義Map的宣告周期,其中需要注意的是,需要先進行初始化操作,其實需要動態申請訪問許可,比如定位,存盤卡等,
public class MainActivity extends AppCompatActivity {
private MapView mMapView = null;
private BaiduMap mBaiduMap=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始話地圖SDK
//在使用SDK各組件之前初始化context資訊,傳入ApplicationContext
SDKInitializer.initialize(getApplicationContext());
//自4.3.0起,百度地圖SDK所有介面均支持百度坐標和國測局坐標,用此方法設定您使用的坐標型別.
//包括BD09LL和GCJ02兩種坐標,默認是BD09LL坐標,
SDKInitializer.setCoordType(CoordType.BD09LL);
setContentView(R.layout.activity_main);
//動態權限訪問
SetPermissionVerify();
mMapView = (MapView) findViewById(R.id.map_view);
}
/**
* 動態權限驗證模塊
* 包括訪問GPS,呼叫存盤卡
* */
private void SetPermissionVerify(){
List<String> permissionList=new ArrayList<>();
// 獲取位置資訊
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
//獲取手機狀態
if(ContextCompat.checkSelfPermission(getApplicationContext(),Manifest.permission.READ_PHONE_STATE)!=PackageManager.PERMISSION_GRANTED) {//表示未授權
// 申請一個(或多個)權限,并提供用于回呼回傳的獲取碼(用戶定義)
permissionList.add(Manifest.permission.READ_PHONE_STATE);
}
if(ContextCompat.checkSelfPermission(getApplicationContext(),Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if(!permissionList.isEmpty()){
String[] permissions=permissionList.toArray(new String[permissionList.size()]);
ActivityCompat.requestPermissions(this,permissions,1);
}else {
//StartRequestLocation();
}
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}
}
當撰寫完成后就允許程式,可以在手機APP上看到百度地圖的初始界面,以北京天安門為中心的默認圖,

看到這個界面,就證明目前運行成功了,
說明申請密鑰成功,引入SDK成功,配置其環境變數成功,可以正常使用百度地圖的所有功能了,
切換地圖型別
百度地圖默認顯示常規地圖,可以通過代碼來調節地圖的顯示型別,這里總共有3種,分別是普通地圖、衛星圖、空白地圖,
可以通過BaiduMap中的setMapType()方法來設定地圖型別,
- 普通地圖
mBaiduMap=mMapView.getMap();
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); //普通地圖

這就是普通地圖,也就是我們平時打開地圖軟體看到的默認顯示地圖,
- 衛星圖
mBaiduMap=mMapView.getMap();
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); //衛星地圖

- 空白地圖
mBaiduMap=mMapView.getMap();
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NONE); //衛星地圖
這個就是白色的底圖,
看到這里,如何你按照上面的提示,仔細的操作,那么也能順利的加載百度地圖到你的專案中去,那么接下來就開始做一些簡單的業務比如根據網路顯示當前的位置資訊,在地圖上面標記點,繪制線,做標注,實作離線地圖等,
期待后面的推文吧,我會將學習百度地圖開發時踩的坑都分享出來,希望能幫助到后面需要使用百度地圖的朋友,
小寄語
人生短暫,我不想去追求自己看不見的,我只想抓住我能看的見的,
原創不易,給個關注,
我是阿輝,感謝您的閱讀,如果對你有幫助,麻煩點贊、轉發 謝謝,
作者:阿輝 關注我:微信掃描下面二維碼,6T編程資料免費送, 微信公眾號:Andy阿輝
寫一些程式員的所思所想,希望對你有幫助,
出處:http://www.cnblogs.com/netxiaoahui/ 著作權宣告:本文著作權歸作者和博客園共有,歡迎轉載,
但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/296449.html
標籤:其他
上一篇:(AS筆記)Android全透明沉浸式主題樣式——代碼篇
下一篇:MVP框架模式
