10.3 安安爱旅游行为编辑

(1) 实现指南针

指南针是中国的四大发明之一,有了智能手机,可以很方便地在通过App Inventor在手机上开发一个电子指南针。

实现指南针的主要依赖2个组件:方向传感器和图像精灵。在第6章中的“安安历险记”中已经初步接触过方向传感器组件。方向传感器可以提供手机相对于地球的方位数据,包括旋转角、倾斜角、方位角等,指南针的实现主要依赖于方位角的值。当手机水平放置,手机绕绕与屏幕垂直的中心线转过的角度就是方位角的值。0度表示手机头部朝正北,随着顺时针旋转值增大,90度表示朝向正东,180度表示正南,270度表示正西,如图10.3所示。

图10.3 不同方向对应的方位角值

实现指南针随方向旋转的效果其实就是根据方位角的值动态调整指南针图像精灵旋转的角度,这个可以通过设置图像精灵的“方向”属性来实现。

为了增强用户友好性,指南针上方还给出了具体的方向描述和度数。由于设备的空间传感器非常灵敏,方位角值严格等于0、90、180、270的可能极小,故此设定了一个[-3,+3]区间内的方向描述范围,具体见表10.2。

具体实现代码模块如图10.4所示。由于需要判断的组合比较多,这里只列出了3种判断,其余5种图中省略了。

(2) 获取地理位置信息

App界面中还显示了包括经纬度、海拔等信息,甚至还有具体的地址信息。这些信息都是通过位置传感器获取的。

位置传感器是提供位置信息的非可视组件,提供的信息包括:纬度、经度、高度(如果设备支持)及街区地址,也可以实现“地理编码”,即,将地址信息转换为纬度(用由地址求纬度方法)及经度(用由地址求经度方法)。要正确获取地理位置信息的话,组件的启用属性值必须为真,而且需要开启设备的位置信息访问权限,手机会自动通过GPS、通讯基站或是WiFi自动定位。

具体实现代码如图10- 5所示。

图10- 5 显示当前地理位置信息

注意:如果手机的定位服务刚启动,一般定位当前位置需要花费几分钟时间。这时如果App此时请求经度、纬度、当前地址或者其他任何位置数据,App Inventor只会报告Unavailable(不可用)。不过,通过使用“经纬度数据状态”属性来检查位置传感器是否已经定位到了当前位置,可以避免产生此消息。

results matching ""

    No results matching ""