1.开发环境
android开发IDE:android studio 2.0;
百度地图Android SDK v4.0(支持自定义下载,可自由组合功能开发包);
2.环境搭建
(1)android studio 2.0 下载:http://www.android-studio.org/index.php/component/content/category/88-download
(2)百度地图Android SDK 下载:http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download
(3)申请密钥:使用百度地图 SDK 进行开发前,需要申请密钥,即Key,Key与百度账号关联,所以如果没有百度账户,需要先创建。Key的申请地址为:http://lbsyun.baidu.com/apiconsole/key
需要注意的是:
注:申请秘钥的时候需要获取数字签名,android studio获取数字签名的口令如下,密钥库口令为android;
android studio 输入命令的终端在如下位置:
(4)工程导入地图开发相关 jar 包:
在工程libs文件夹下放入jar文件,如图:
在main文件夹下新建 jniLibs 文件夹,导入之前下载的百度地图SDK中的包含 .so 文件的文件,我的电脑系统是64位的,所以选择的是x86_64;
OK,可以进行代码开发了:
首先是界面设计,在activity_main.xml中添加MapView控件,用于显示调用的底图数据,还可以进行图层宽、高等其他属性的设置。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns: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="com.example.huyunan.bmap.MainActivity">
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
</RelativeLayout>
然后是相关权限的设置,在AndroidMainfest.xml中添加如下权限,每个权限的含义可自行查阅理解。
<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.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--uses-permission android:name="android.permission.GET_TASKS" /-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
最后,在主程序 MainActivity.java 中实现对底图数据的加载:
package com.example.huyunan.bmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView;
public class MainActivity extends AppCompatActivity {
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.bmapView);
}
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
}
PS:本人是做车载移动测量的,出于兴趣最近开始进行android开发方面的学习,并不是什么技术牛人,所以有哪里不对的地方,大牛勿喷,以后会闲暇之余会写一些关于车载移动测量三维建模和android开发方面相关的文章,欢迎大家一起讨论!