百度地图demo(Android Studio)

来源:互联网 发布:网络架构师 工作职责 编辑:程序博客网 时间:2024/05/16 07:14

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

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

申请地址:
http://lbsyun.baidu.com/apiconsole/key
自己注册账号即可。

二、然后是创建应用

这时要做好两点准备:
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        }    }

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

    <meta-data        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]

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

然后,就出界面了,有图为证:
这里写图片描述

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

我修改的是 MarkerClusterDemo.java ,只是修改了几个经纬度值,很好,地图中心成功从帝都转移了,还是很听话的嘛。
再给张图:
这里写图片描述

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

http://download.csdn.net/detail/lintax/9720235

0 0
原创粉丝点击