百度地图相信大家都不陌生,我们经常使用他!但是怎么操作他那,
其实他和高德地图差不多
首先我们需要到百度官网注册账号
注册完之后创建应用
上图中主要就是发布版SHA1:我有一个简单的小方法,不用再cmd命令keytool -v -list -keystore…找啦,直接我们打开自己的安卓Studio,打开我们安卓页面右侧的大象,随便点击一个自己的项目找到android中signingReport点击他
然后创建完之后复制一下我们key
接下来就该操作啦,在清单文件中application下放入我们自己的key
<meta-data android:name="com.baidu.lbsapi.API_KEY"
android:value="MgmbgPTzpKs9fUgLUBZATbq9UsH2iv0g"></meta-data>
添加权限,如果说清单中报错是权限的话,那就是注释不能// 快捷键ctrl+/一下
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--//网络权限,当禁用后,无法进行检索等相关业务-->
<uses-permission android:name="android.permission.INTERNET" />
<!--//读取系统信息,包含系统版本等信息,用作统计-->
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<!--//获取设备的网络状态,鉴权所需网络代理-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--//允许sd卡写权限,需写入地图数据,禁用后无法显示地图-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--//这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<!--//这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--//获取统计数据-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--//使用步行AR导航,配置Camera权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--//程序在手机屏幕关闭后后台进程仍然运行-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
当然我们自己下载的libs包也需要覆盖一下,如果说我们不覆盖一下的话也会导致项目出现问题
自定义一个Application类然后再清单中注册一下
布局文件
测试类显示操作:
public class MainActivity extends AppCompatActivity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
}
项目效果:
路线
mSearch = RoutePlanSearch.newInstance();
mSearch.setOnGetRoutePlanResultListener(new OnGetRoutePlanResultListener() {
@Override
public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
}
@Override
public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {
}
@Override
public void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {
}
@Override
public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {
DrivingRouteOverlay overlay = new DrivingRouteOverlay(baiduMap);
if (drivingRouteResult.getRouteLines().size() > 0) {
//获取路径规划数据,(以返回的第一条路线为例)
//为DrivingRouteOverlay实例设置数据
overlay.setData(drivingRouteResult.getRouteLines().get(0));
//在地图上绘制DrivingRouteOverlay
overlay.addToMap();
}
}
@Override
public void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {
}
@Override
public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {
}
});
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
PlanNode stNode = PlanNode.withCityNameAndPlaceName("北京", "西二旗地铁站");
PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", "百度科技园");
mSearch.drivingSearch((new DrivingRoutePlanOption())
.from(stNode)
.to(enNode));
}
},200);