您的位置:首页 > 移动开发 > IOS开发

运用针对Flex的ArcGIS API构建安卓和iOS 移动测图应用

2011-07-22 13:49 676 查看
区位、区位、区位。这不仅是房产经纪人的信条,也是Google、Facebook、Foursquare及其他众多网络先锋所恪守的信条,他们都将公司区位作为服务提供要素的一部分。随着移动服务在我们的日常生活中变得越来越普及,整合了区位意识、移动性以及测图资产的应用为用户提供了创新的、令人激动的新功能。这种新功能增加了开发成本,尤其对于开发在所有设备上均可运行的移动应用的开发者。对于这些开发者而言,Flex和Flash平台帮助他们实现了较低的成本,并简化了跨平台应用的开发过程,它们能让开发者使用一种单一码基数构建应用,并将其配置到多个设备上。
在本文中,我将向您展示入耳使用针对Flex 的ArcGIS API 来构建一个测图应用,该应用可配置到支持安卓和Apple iOS的设备上。本文中采用的示范应用是针对Flex的ArcGIS API,以便对ArcGIS.com上的美国各州几何图形进行查询,结果将通过各州列表和一张地图的方式展示,该列表用于移动设备在直式定向时展示各州列表,该地图用于在移动设备进行横向定位时高亮显示所选的各州。这一应用听起来可能很简单,但实际没有想象的那么简单。它能展示Flex Mobile框架的诸多方面,以及它如何与针对Flex的ArcGIS API进行合作。

测图应用的导入和运行

在下载了说明的范例文件后,打开Flash Builder 4.5.1,然后按如下步骤操作:
选择文件 > 导入> Flash Builder > Flash Builder Project,点击下一步.
选择文件,点击浏览,导航至已下载的MobileApp.fxp项目文件。
选择导入新项目副本,点击完成。
您可采用安卓模拟器运行该应用,或在一台实际的安卓设备上允许该应用。通过运行配置(运行> 运行配置),您可以添加一个移动应用,并确定适当的启用方式(见图1)。


图1. 设置MobileApp的运行配置

浏览应用

打开MobileApp.mxml,您可以看到主应用程序的源代码。
MobileApp.mxml



该应用的主类是一个ViewNavigatorApplication子集。它具有一个
splashScreenImage
属性,用于应用启动时展示内置图像。另外,它还用于将应用的初始视图(见图2)设为一个QueryView类范例。


图2. 应用的初始视图初始视图(或主页视图)可使用户输入一个SQL where子句作为一个查询任务的过滤器,其将从ArcGIS.com的一个REST资源获取美国各州的几何图形与名称。您可以在QueryView.mxml中获得源代码。 QueryView.mxml

QueryView是视图的一个子类,其标题属性为“查询”。其子类按垂直设置。在这里,它只有一个子类,一个TextInput范例,该范例可使用户键入一个SQL where 子句。在动作内容区(窗口的右上方)内定义了一个按键范例,其图标属性引用一个内置的放大键图像,并由一个点击事件处理器,可通过文本输入值将一个QueryExecuteView范例推到窗口中。
另外,还含一个按键事件处理器,以对设备上按下硬件搜索键的动作做出反应(在安卓设备上,指位于设备底部的搜索键)。这也将推出一个QueryExecuteView范例。 QueryExecuteView视图(见图3)是使用用户定义的where字句执行查询前的一个中间步骤。

图3. 执行查询 QueryExecuteView.mxml

当执行查询时,将出现一个“忙碌”提示图标,提示用于其正在工作中。视图中有一个QueryTask,其url属性设为一个带美国人口数据的ArcGIS REST 终点。属性 useAMF设为真,表明得出的数据将以二进制AMF格式而不是JSON格式)流回移动设备,以实现更好的性能及有效载荷压缩。另外,该视图中含一个Query 范例,其where属性上行至视图数据属性(记住,这是在上一视图中调用navigator.pushView时进行定义的),返回字段仅限于'STATE_NAME',并设置returnGeometry="true",以强制返回各州的多边形几何图案。在该视图激活时,查询任务执行功能被调用,以查询作为一个引述。成功执行后,将显示一个QueryResultView范例,其数据属性将设为或获得的特征集。QueryResultView视图中展示了查询结果。当视图导航器被指示将一个该类的范例推到该试图组的顶端时,它将创建一个范例,调用其数据设定器,该设定器引用一个FeatureSet类范例,并对该视图进行渲染。一个FeatureSet有两个属性:特性:一个对象阵列,其中每个对象有一个对应查询中定义的outFields属性内容的键/值对。
功能:一个图形阵列,其中每个图形有一个几何属性。
QueryResultsView.mxml



该视图可以下列两种状态之一呈现:直式或横式。视图状态受用户手握设备的方式来决定。Flex移动框架可对设备方向进行监控,并相应设置视图状态。这种状态管理方式使您可根据方向显示查询任务的特性。在直式状态下,应用标题设为特性列表,视图有一个列表占据(见图4)。列表中没一行均显示一个特征
STATE_NAME
属性值



图4. 直式视图下的应用而在横式状态下,列表便变为一张一点地理范围的地图,展示了美国本土的48个州。该地图由两层组成。第一层基于一套瓦片方案,该方案中,瓦片可通过提供的URL检索。第二层是图形层,其数据来源是数据属性中提供的特性。每个特性或图像都通过一个SimpleFillSymbol范例表现(渲染),以本透明红色覆盖各州,并以黄色实线勾勒各州轮廓(见图5)。为使用户可回到主窗口,在导航内区(左上方)有一个按键,该按键引用一个主页图标和一个点击处理器,用于指引导航至初始视图(在此为QueryView)。

图5. 横式视图下的应用

该应用已发行版本的打包

利用FlashBuilder 4.5.1,您可以选择直接将您的项目从IDE导出到安卓设备、黑莓BlackBerry平板OS设备和iOS设备。
现在开始,首先选择项目>导出已发行版本,完成打包程序(见图6)。


图6. 导出一个已发行版本如想要配置到一个iOS设备(见图7),您必须作为开发者在Apple进行注册,然后下载一个Provisioning Profile文件到您的本地设备上。在生产IPA 文件后(这可能需要一些时间),将IPA文件拖至iTunes的发行文件夹,并使您的iPhone同步传输应用。

图7. 浏览iOS设备的一个已发行版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: