如何运用百度地图SDK进行开发(一)初级篇
版本:BaiduSDK 2.12 (旧版本)(3.0以上版本由于昨天申请SDK总出问题以后再记录)
首先,来到百度地图API首页:http://developer.baidu.com/map/
开发--->Android开发--->Android地图SDK,点进去后,在左侧有个导航栏,点击 获取密钥,根据相关提示获取key,开发中要用到,这里不过多讲解。
点击相关下载,下载最新的Android地图SDK,解压后获得
往下看,点击开发指南--->配置环境发布,找到Android Studio工程配置方法,根据提示进行操作(这里由于讲的是旧版本2.12,与新版本略有差别,所以我截图下来)。
之后把jar包加入到项目中
2个jar包都要加入,之后软件会自动进行编译,等待编译结束后就可以开始使用了。
代码部分:
(1)在布局中添加组件
<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"><com.baidu.mapapi.map.MapViewandroid:id="@+id/mapView"android:layout_width="match_parent"android:layout_height="match_parent"/><Buttonandroid:id="@+id/btn_main_open"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="打开软键盘"android:onClick="click"/></RelativeLayout>
(2)在配置文件中添加相关权限
<!--gps--><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/><!--wifi--><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/><!--网络的权限--><uses-permissionandroid:name="android.permission.INTERNET"/><!--离线包--><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--获取手机信息--><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
(2)在MainActivity中编写代码
publicclassMainActivityextendsAppCompatActivity{/***百度地图的引擎(管理地图)*/privateBMapManagermanager;/***显示地图信息的*/privateMapViewmapView;/***控制地图的:缩放、平移、旋转*/privateMapControllercontroller;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);/***加载布局之前,首先初始化地图的引擎*/initManager();setContentView(R.layout.activity_main);/***初始化布局中的mapView*/mapView=(MapView)findViewById(R.id.mapView);/***对控制器初始化*/controller=mapView.getController();/***这里设置初始级别为显示第12级(1.0版本是3-18级别,2.0版本开始3-19个级别)*/controller.setZoom(19);/***这里设置默认显示的中心地带(比如:116.312741(经度),39.979111(纬度))*/controller.setCenter(newGeoPoint(39979111,116312741));}privatevoidinitManager(){manager=newBMapManager(this);manager.init(ContentsUtils.KEY,newMKGeneralListener(){/***获取网络工作状态*@paramisError返回状态*/@OverridepublicvoidonGetNetworkState(intisError){if(isError==MKEvent.ERROR_NETWORK_CONNECT){Toast.makeText(getApplicationContext(),"网络连接出错",Toast.LENGTH_SHORT).show();}}/***获取许可状态*@paramisError返回状态*/@OverridepublicvoidonGetPermissionState(intisError){if(isError==MKEvent.ERROR_NETWORK_CONNECT){Toast.makeText(getApplicationContext(),"申请的key出错了",Toast.LENGTH_SHORT).show();}}});}/***优化*/@OverrideprotectedvoidonResume(){super.onResume();mapView.onResume();}/***优化*/@OverrideprotectedvoidonPause(){super.onPause();mapView.onPause();}@OverrideprotectedvoidonDestroy(){super.onDestroy();/***该Activity销毁的时候,把地图显示的view也销毁掉,有助于优化*/mapView.destroy();}/***这里是根据按键做出相应操作*@paramkeyCode*@paramevent*@return*/@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){switch(keyCode){caseKeyEvent.KEYCODE_1:mapView.setSatellite(false);mapView.setTraffic(false);break;caseKeyEvent.KEYCODE_2:mapView.setSatellite(true);mapView.setTraffic(false);break;caseKeyEvent.KEYCODE_3:mapView.setSatellite(false);mapView.setTraffic(true);break;default:break;}returnsuper.onKeyDown(keyCode,event);}/***设置按钮,控制软键盘的打开与关闭**@paramview*/publicvoidclick(Viewview){Toast.makeText(MainActivity.this,"打开/关闭键盘",Toast.LENGTH_SHORT).show();openInputMethod();}/***调用软键盘,打开/关闭*/publicvoidopenInputMethod(){InputMethodManagerimm=(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);if(imm.isActive()){imm.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);}else{getSystemService(Context.INPUT_METHOD_SERVICE);}}}
说明:这里多加了一点功能,就是左上角加个按钮,可以打开/关闭键盘,按键盘的1/2/3键,会分别显示电子地图/卫星地图/实时交通。其他相关操作,代码作了相应注释。
运行效果图:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。