近期使用百度地图,研究了一下百度地图的demo。

一、首先是要申请百度地图开发账号

二、然后是创建应用

这时要做好两点准备:

1,确定好app的包名,例如我的就是”com.app.app_dev”;

2,准备好一个签名文件,例如我的就是 app_dev.keyStore,

先进入keystore文件所在目录,然后在命令行中执行命令,可以获取到sha1值:

keytool -list -v -keystore app_dev.keystore

当然,这些内容,也可以在后期来修改。

创建完成,就得到了一个key,这个东西是app中打开百度地图必须要用到的。

三、下载demo

到如下地址下载即可:

http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download

当然,顺便看看“使用说明”、开发指南,都会很有帮助的。

说句题外话:很多时候,我们遇到问题,大部分是我们没有用好api。为何没有用好?就是文档看得少了。

四、解压demo,导入工程

我下载的是 BaiduMap_AndroidSDK_v4.1.1_All.zip ,解压开,里面分3部分:

libs:库文件

BaiduMap_AndroidSDK_v4.1.1_Docs.zip:文档

BaiduMap_AndroidSDK_v4.1.1_Sample.zip:例程

这里我们先关注例程,继续解压,里面有两个demo,

一个是Eclipse的:BaiduMapsApiDemo,

一个是Android Studio的:BaiduMapsApiASDemo。

我们把BaiduMapsApiASDemo的整个目录,拷贝到自己的工作环境下。然后导入到android Studio中。

五、设置gradle编译参数

直接导入进来,还是不能用的。我们要把我们的包名、签名、key用起来。

考虑到签名与key的匹配问题,我将debug版本也设置为使用release的签名了,这样子,无论debug版还是release版,都使用同一个签名文件,也不会遇到debug版不能出现地图,而release版才能看见地图的问题了。

在Module的build.gradle中这样做:

signingConfigs {
// keystore
release {
storeFile file("app_dev.keystore") //指定了签名文件,要存放在Module目录下,即与Module的build.gradle同目录
storePassword "myPassword"
keyAlias "app_dev"
keyPassword "myPassword"
}
}
defaultConfig {
applicationId "com.app.app_dev" //指定了包名
minSdkVersion 9
targetSdkVersion 22
versionCode 1
versionName "1.0"
signingConfig signingConfigs.release
}
buildTypes {
debug {
//debug版本也使用release签名
signingConfig signingConfigs.release
}
release {`这里写代码片`
//使用release签名
signingConfig signingConfigs.release
}
}1

2


另外,还有一个key,在清单文件中指定:

android:name="com.baidu.lbsapi.API_KEY"
android:value="My API Key" />

用签名申请的key,替换掉上面的 "My API Key" 即可。

六、编译、运行

一切顺利的话,就能编译运行了。不过,由于我的gradle的版本与demo不一致,光更新个gradle就让我好一顿等待。

然后,居然给我提示了一个错误:

Error: This class should be public (com.baidu.mapapi.clusterutil.ui.RotationLayout) [Instantiatable]11

好吧,比较简单,并且可以忽略过去继续往下走。我还是改一下,就是加个public嘛,也许是提供demo的人疏忽了吧。

然后,就出界面了,有图为证:


七、稍做修改,看看改动效果

我修改的是 MarkerClusterDemo.Java ,只是修改了几个经纬度值,很好,地图中心成功从帝都转移了,还是很听话的嘛。

再给张图:


我的demo地址(直接导入即可使用哦):