首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于Adobe AIR开发移动GIS应用

作者:王伟 李成仁 来源:电子技术与软件工程

摘 要

随着无线互联网技术、移动通讯技术和各种移动终端技术的发展,传统的GIS正在逐渐向移动GIS发展。本文详细介绍了基于Adobe AIR开发移动GIS应用的结构组成、关键技术和应用案例,并分析了其平台特性,为开发人员搭建移动GIS应用推荐了一种新的解决方案。

【关键词】Adobe AIR 移动GIS 跨平台

1 引言

本文介绍的是一种依托Adobe AIR移动端技术,并利用ArcGIS API for Flex产品为开发人员提供移动端的GIS SDK。它帮助有ActionScript 3.0开发经验的人员也能在移动端轻松搭建出App,而不需要再花时间学习移动平台的开发语言;另外,借助Adobe AIR的跨平台特性,一套系统可以编译成iOS/Android等多种平台的App,降低了不同平台之间App的开发和同步成本,这样的特性方便了许多周期短,成本低的开发项目。

2 移动应用构架

Flex是一个框架,它利用AS3类的底层库来提供用户界面组件,以允许开发人员建立富媒介应用程序并编译为SWF格式,Adobe Flex建立在Flash Player和Adobe AIR所提供核心运行时API的基础之上。

从Flex4.5.1之后引入了对使用Flex框架开发移动应用程序的支持。由于多种原因,为触摸屏设备开发的移动应用程序毫无疑问不同于桌面和Web应用程序。虽然移动设备功能越来越强大,但是在开发移动应用程序时需要考虑一些重要方面:

2.1 用户界面设计

移动设备具有更小的屏幕和更高的像素密度,并且这种应用程序应该设计为可适合屏幕调整大小的组件,使得更加易于交互。

2.2 屏幕分辨率

移动设备可能具有不同的屏幕分辨率,并且大多数移动设备屏幕的像素密度要高于桌面显示器的像素密度。因此应用程序应该能够很好地适用这些屏幕显示。

2.3 触摸屏输入

提供对触摸交互支持的移动设备必须允许借助应用程序进行触摸输入。

2.4 可用内存和处理器性能

大多数情况下移动设备的内存都很有限,并且CPU和GPU性能较低,因此应用程序需要能够适应不同的低性能处理器。Flex为移动客户端开发提供了一套成熟的框架以及UI控件,通常使用ViewNavigationApplication和TabbedViewNavigationApplication容器创建移动应用程序。使用ViewNavigatorApplication标签作为基本应用程序元素来创建具有单一视图的应用程序,使用TabbedViewNavigatorApplication标签作为基本应用程序元素来创建基于选项卡的应用程序。

3 关键技术环节

3.1 屏幕

在将移动设备作为开发目标时,最先想到也是最重要的考虑事项就是屏幕。这种屏幕相对较小,无论是从物理方面还是从能够显示的像素数方面来考虑都是如此。它还有着较高的密度(每英寸像素数),不同的设备有着不同的密度和维度组合。移动设备还可能采用水平或垂直方向放置。为了跨这类多样化的尺寸和密度正常操作,AIR提供了对以下关键API的支持:

(1)Stage.stageWidth、Stage.stageHeight:这两个属性在运行时提供了实际的屏幕维度。请注意,在应用程序进入或退出全屏模式时,或者在屏幕旋转时,这些值可能会发生变化。

(2)Capabilities.screenDPI:这提供了屏幕上每英寸的像素数。

3.2 触摸输入

在应用程序显示到屏幕上之后,通常就准备好了接受用户的某些输入。对于移动应用程序来说,这就意味着接受触摸输入。

AIR可自动将简单的单指手势(例如单指轻敲按钮)映像到对应的鼠标事件。这使得编写能够以合情合理的方式在移动平台和桌面平台中运行的共享代码成为可能。

对于更加复杂的交互,您需要利用多点触控输入。面向移动的AIR通过支持以下关键API提供了多点触控支持:

(1)Multitouch:这个控制器类允许应用程序确定有哪些触摸事件和手势事件可用,并选择要使用的事件。

(2)TouchEvent:在处理原始触摸事件时,应用程序将接收到这种类型的事件。

(3)GestureEvent、PressAndTapGestureE

vent、TransformGestureEvent:在处理手势时,应用程序将接收到这些事件。

3.3 传感器

移动设备用户通常不适应使用多点触控屏幕与其移动应用程序交互——他们也希望应用程序能够了解位置,并根据设备的物理方向和运动情况做出反应。AIR通过两个关键API对此提供了支持:

(1)Geolocation:这个API会分派事件来提供设备的地址位置(经度和纬度)以及运动情况(移动方向、速度)。

(2)Accelerometer:这个API会分派事件,报告当前沿x、y和z轴施加给设备的力量。

3.4 应用程序生命周期

在移动设备上,应用程序具有一个几乎无法由自己控制的生命周期。它们无法自行启动,但可以由用户直接启动或者由用户简介启动。它们可以随时发送到后台。在后台运行时,它们也可随时停止,这通常是在设备中的资源不足以供前台应用程序使用时发生的。

移动应用程序无法自行启动或者关闭。在某些移动平台上,NativeApplication.exit()是不能操作的,应用程序不应依靠在关闭过程中保存状态,而是应该在发送到后台时和/或在运行时定期地保存状态。

4 开发案例

系统基于Adode AIR和ArcGIS API For Flex开发了杨浦区规划土地移动GIS平台,实现了在移动端对地图进行动态浏览、图层切换、图形和属性查询等功能,具体如下:

(1)地图浏览,如图1所示。

(2)图层管理,如图2所示。

(3)点击查询,如图3所示。

5 总结展望

开发案例表明,运用Adobe AIR结合ArcGIS API For Flex技术开发移动GIS是可行的,使用Adobe AIR可以创建一个跨安卓、iOS移动平台的应用程序,AIR之所以具有这样的能力,是因为它在必要时(例如用于访问相册)提供了跨平台的抽象,能够动态发现设备属性(例如屏幕尺寸),此外也能在必要时给您让路(例如,使用文件系统API访问文件系统的任何部分)。

本文只实现了部分功能用于验证方案的可行性,还有很多工作有待于进一步完善,基于本方案的基础上可进一步实现实时地理位置定位、离线地图加载、GIS功能分析等。同时,随着地理信息技术自身的发展,移动GIS也不再仅局限于GIS系统本身,而是延伸至整个地理信息产业链,涉及数据采集、数据处理、平台软件、行业应用等多个层面,构成了移动地理信息的新生态。

参考文献

[1]余淘等.移动计算环境下GIS技术的发展及应用[J].测绘通报,2002.2:40-42.

[2]赵瑞东等.移动式GIS发展的关键技术及应用前景[J].测绘工程,2003,3:34-36.

作者单位

上海市测绘院 上海市 200063