一个可以把现在的心情记录到地图上的 APP ,基于高德 LBS 开放平台。
需要用到的工具
- Android Studio Android 集成开发环境
- Genymotion Android 模拟器
- 高德 LBS 开放平台 提供定位、地图及其数据存储
- Android Asynchronous Http Client Android 异步 HTTP 请求库
Android Studio 和 Genymotion 的基本使用方法可参考《Android学习记录——开发环境搭建》。
创建应用——MoodMap
1. 使用 Android Studio 创建一个名为 MoodMap 的 Android 项目
配置保持默认参数即可:
导入高德 LBS 开放平台相关 SDK
1. 注册高德 LBS 开放平台账号并获取相关 SDK 的 KEY
注册账号后在我的 KEY页面获取 Android 平台 SDK 和 Rest 服务接口的 KEY。
2. 下载 SDK
3. 配置 SDK 库文件
将 SDK 包中对应的 .jar 文件复制到当前 app 项目下的 libs 目录中;然后再 Android Studio 中依次右击 .jar文件,选择 Add as library ,将其导入当前 app 项目。
创建一张云图
通过以下命令请求 Rest 服务接口创建一张用于存储心情数据的云图:
RestKey为刚才申请的 Rest 服务接口的 KEY,注意保存返回结果中的tableid,后面需要保存到 AndroidManifest.xml 文件中。
导入 Android Asynchronous Http Client
在项目 build.gradle 文件的 dependencies 节中添加一行compile 'com.loopj.android:android-async-http:1.4.5'
。
实现 APP 的功能
1. 界面
res/layout/activity_main.xml:
res/layout/choose_mood.xml:
res/values/strings.xml:
复制以下3张图片到 res/drawable/ 目录下:
2. 逻辑
MainActivity.java:
3. 修改AndroidManifest.xml
注意将代码中的AndroidKey
、RestKey
和CloudTableId
替换成自己应用的。
测试应用
使用 Android 4.1 或以上版本的手机打开 MoodMap (Genymotion模拟器需要先打开GPS并设置当前的位置),选择一个表情,等待片刻便能在地图上看到自己所在的位置多了一个表情,如下图所示。
要点总结
1. 界面
应用初始化完成后会创建一个自定义的对话框,其布局文件位于 choose_mood.xml 文件中,当用户做出选择后该对话框即关闭。
2. 逻辑
此应用启动后首先初始化 2D 地图 SDK,然后发起定位请求,获得位置信息后显示对话框让用户选择当前的心情,之后保存用户的心情到云图,最后更新云图数据显示到地图上。期间使用到 2D 地图 SDK 、 定位 SDK 和 云图 SDK ,具体使用方法可参看实现代码及文档。
3. AndroidManifest.xml
应用将用到第三方服务的 KEY 保存到了 meta-data 字段,可在 Java 代码中通过如下方式获取: