开发环境:Android Studio
① 登入百度地图开放者平台下载SDK
②创建应用填写SHA1和packageName
记住并且保留AK
③配置Android Studio
一、
######将下载的百度地图SDK压缩包解压,并将解压后的文件夹中libs文件夹文中的所有文件复制到,Android studio 工程文件夹 app->libs中
在app目录下的build.gradle文件中android块中配置sourceSets标签,如果没有使用该标签则新增,详细配置代码如下
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
二、
接下来在工程中倒入jar包
1、菜单栏选择File -> Project Structure
2、在弹出的Project Structure对话框中选中左侧的Modules列表下的app目录,然后点击右侧页面中的Dependencies选项卡。
点击右边的加号选择第二个 jar dependency,并选择刚刚解压的jar 包
如图:
④显示地图
第一步 配置AndroidManifest.xml文件
1.在中加入如下代码配置开发密钥(AK):
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" />
</application>
2. 在外部添加如下权限声明:
<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
第二步 在布局文件中添加地图容器
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />
第三步 地图初始化
再创建一个类或者activity不需要layout
以下为例创建Main2Activity
目的:为了初始化SDK
//主要代码
public class Main2Activity extends Application {
@Override
public void onCreate() {
super.onCreate();
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
SDKInitializer.initialize(this);
//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
SDKInitializer.setCoordType(CoordType.BD09LL);
}
}
重要:在在AndroidManifest.xml文件中声明该类不声明模拟器运行显示程序停止
<application
//application下加android::".Main2Activity"
android:name=".Main2Activity"
回到主活动MainActivity中加入修改以下代码
public class MainActivity extends Activity {
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();
}
}