一、添加百度地图SDK
要实现Android应用的地图展示和导航功能,首先需要在项目中添加百度地图SDK。以下是添加SDK的步骤。
1. 在百度开放平台注册账号并创建应用; 2. 下载百度地图SDK,并解压; 3. 将解压后的文件夹拷贝到项目的libs目录下; 4. 在项目的build.gradle文件中添加如下配置:dependencies { implementation files('libs/BaiduMapApi_v4_3_1.jar') }5. 在AndroidManifest.xml文件中添加如下配置:
<application ...> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="你申请的API key"/> </application>
二、显示地图
添加完SDK后,就可以在应用中展示地图了。以下是实现地图展示功能的步骤。
1. 在布局文件中添加MapView组件:<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="match_parent" android:layout_height="match_parent"/>2. 在Activity中获取MapView组件,并设置地图初始化选项:
MapView mMapView = (MapView) findViewById(R.id.bmapView); BaiduMap mBaiduMap = mMapView.getMap(); MapStatus mMapStatus = new MapStatus.Builder() .target(new LatLng(39.914935, 116.403694)) .zoom(12) .build(); BaiduMapOptions options = new BaiduMapOptions() .mapStatus(mMapStatus) .compassEnabled(false) .zoomControlsEnabled(false); mMapView = new MapView(this, options); mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap();3. 在AndroidManifest.xml文件中添加导航相关权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
三、导航功能
实现了地图展示功能后,我们可以加入导航功能,使应用更加实用。以下是实现导航功能的步骤。
1. 在布局文件中添加Button组件:<Button android:id="@+id/navigation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="导航"/>2. 在Activity中获取Button组件,并设置点击事件:
Button button = (Button) findViewById(R.id.navigation); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LatLng pt1 = new LatLng(39.914935, 116.403694); LatLng pt2 = new LatLng(39.908749, 116.397491); NaviParaOption para = new NaviParaOption() .startPoint(pt1) .startName("百度大厦") .endPoint(pt2) .endName("北京天安门"); try { BaiduMapNavigation.openBaiduMapNavi(para, MainActivity.this); } catch (BaiduMapAppNotSupportNaviException e) { e.printStackTrace(); } } });3. 在AndroidManifest.xml文件中添加导航相关权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>至此,我们已经完成了使用百度地图API实现Android应用的地图展示和导航功能。完整代码示例请见以下链接:https://github.com/baidumapapi/BaiduMapApiDemo_Android。