本期我们在AppInventor中利用高德地图组件开发一款导航应用——宝贝你在哪,它可以查找停在附近停车场的爱车。停车时打开App定位,记录位置后可关闭应用,需要找车时再次打开应用,就可以查看车的位置,并规划当前位置到车辆之间的路径,之后开始步行导航。

本应用在WxBit汉化版(app.wxbit.com)中开发,它的组件比较多,应用安装时不会出现新旧手机的兼容问题。如果使用其它开发环境,需要安装相应的插件。

1.组件设计

1.应用效果图

应用效果如图,根据组件列表完成界面制作,组件属性的颜色、位置等参数可自行微调,由于组件较多注意为组件重命名增加程序可读性。(图1)

2. 组件设计

各组件作用和属性如列表,注意,地图类型有3种,通过下拉框选择。

2.程序设计

程序设计过程中,最好是边写代码,边测试,随时发现问题,随时解决。如果最后一起测试,就不容易找到哪段代码有问题了。

1.申请APIKey

路径规划的APIKey需要去高德开放平台申请后填入。

注册高德开放平台→开发者认证→控制台→新建应用→添加→自行输入Key名称→选Web服务(只需申请Web服务Key,其它不需要)→提交。之前我在测试的时候,按照路径规划的说明文档,做了很多无用功。这个Key是获取路径规划方案的钥匙,也是身份证明。

2.显示当前经纬度和海拔

当开启APP时或位置改变时,高德定位组件自动定位当前经度、纬度和海拔,并显示在标签上。APP开启后,可以通过按钮显示到高德地图上。(图2)(图3)

3.记录宝贝位置

在车附近10秒钟以上更新经纬度数据,记录位置,否则车的位置会有偏差。把数据保存在本地数据库,按标签保存数据,以便以后打开APP时调用。(图4)

4.显示宝贝位置

当需要查看车的位置时,点击按钮,就可以从本地数据库中调取保存的宝贝位置信息,通过标签显示出来,同时高德地图也做相应的标记,以方便查看。(图5)

5. 点击标记放大地图

点击宝贝位置标记(粉色)或点击当前位置标记(红色),都会放大地图,缩放级别为(1-18)与高德地图属性的缩放级别有关,用两个手指也可以放大缩小地图。(图6)

6. 地图类型

地图类型有3种,平面图、卫星图、混合图,用下拉列表框选择。(图7)

7. 显示路径规划

给出从当前位置到车的位置之间的步行分段方案。这个方案,是路径规划方案,也可以用HTTP请求,获取方案信息,经过处理后,效果相同。如果出错,给出提示,方便调试。点击文字执行清除提示。(图8)

8. 变量和过程

创建多个全局变量“总距离、总时间、步行步骤总数目、步行线段数目、距离2、时间2”初始值均为0。

创建多个全局变量“步行步骤总方案、步行指示、步行线段、坐标点字符串”并赋值为空文本。

定义4个函数,两个用来分离经纬度,将获取的经纬度数据交换位置,以适应路径规划的应用。(图9)

两个用来控制路径线条,线条数目本例只有2条。你可以继续添加,还可以利用动态组件控制线条数目,大家可以尝试一下。(图10)

9.路径规划获取方案

这个路径规划方案,是利用列表数据处理的,如何查看和分析列表,请参考往期的JSON数据应用。也可以将JSON数据转换为字典处理,结果相同。(图11、12)

10. 开始导航

显示行走路线的线条。实际路径规划有多个区段,每个区段又有很多线段构成,可以利用遍历的方法一一连接,本文只说明原理,不做详述。(图13)

11.初始化

初始化是打开APP时,将事先保存的数据,加载到内存,以便处理。延时2秒(2000ms)给提取本地数据库信息留够时间。如果本地数据库没有保存的数据,则显示0.0。(图14、15)

3.调试、打包与发布

1.调试

手机安装AI伴侣,在连接中扫码,找一位置模拟车位,停留10秒钟以上,然后点击“记录宝贝位置”,然后到另一个位置,高德地图会显示当前位置信息。可以点击“显示宝贝位置”来查看车的位置,也可以点击“显示当前位置”来查看当前位置信息。“查看路径规划”用来显示路径规划信息,点击文字,隐藏。“开始导航”必须查看路径规划后,才显示行进路径线条,本例只显示两条。其实,在每个线条里,还会有多个线段。多路段情况,有兴趣的朋友可以深入研究探讨。(图16)

2.打包

把程序生成为apk文件,脱离开发环境,以备在其他手机上安装。由于高德地图是会员组件需要成为会员才能打包,但不影响之前的编辑和调试。应当注意的是,这个APK文件在电脑和手机里都会误报病毒,杀毒时会清除掉,如想保存,建议打包压缩后,留存。

3. 上架

就是这个应用是能放在应用市场上供大家下载安装的。

先完成误报病毒申诉。到腾讯手机管家(m.qq.com/complaint)上申请误报病毒,按要求填写提交。申诉成功后,即可发布应用了。

发布申请。在阿里应用分发平台(aliapp.open.uc.cn)根据提示进行分发。

以上实例只是导航路径规划的简单应用,如果想开发更完善的路径规划,还要了解多路段情况,这时不再赘述。

程序比较复杂,您可以在壹零社下载程序源代码并对照视频学习。