ArcGIS Flex API Flexviewer使用


   开发Widget开发工具:Flex Builder3 开发语言:ActionScript & mxml 1)开发环境配置: a) 首先确保Flex Builder3(Flex SDK 3.1)安装成功,并下载Flex viewer(libs目录中包含ArcGIS API for Flex v1.0)。 b) 解压下载下来的Flex viewer压缩包。 c) 打开Flex Builder3,将刚解压出来的源代码导入到flex workspace中。在导入向导中选择源代码的目录,点击finish。 d) 编译Flex Viewer。选中当前工程,在Project 菜单下选择Build Project。 2)自定义widget开发 a) 新建一个mxml组件(右键单击flex Viewer ,选择New->MXML Component)。选择组件目录,输入组件名称,并确保该组件继承BasWidget类。 b) 将创建好的widget添加Flex Builder Project Module list。 右键单击Flex Viewer 工程,选择属性(properties),打开属性配置框,然后在左边列表择Flex Modules。单击Add按钮,选择MyFirstWidget.mxml。这一步的目的是确保MyFirstWidget能够被编译成单独的swf文件。 c) 编译widget。 重新编译整个Flex Viewer 工程即可。编译完成之后在bin-debug目录下就会有MyFirstWidget.swf。 3)使用WidgetTemplate 打开MyFirstWidget.mxml文件,内置的WidgetTemplate提供了丰富的界面元素。下面介绍如何部署Widget。 a) 把Widget加入到config.xml文件中。 打开config.xml文件并在标签中添加代码: b) 保存config.xml文件并重新编译Flex Viewer。 c) 运行Flex Viewer。 d) 从Tool菜单中选择My First Widget。 至此,通过代码就完成了个基本的Widget UI 设计,已经有了最大化,最小化,关闭等功能。下一步,就是实现业务逻辑。 4) 访问地图 (Accessing a Map) Flex Viewer是一个以地图为中心的应用程序,所有的操作都是围绕地图来进行。Flex Viewer初始化之后,Widget就可以访问地图了(来自ArcGIS Server 的地图服务)。 map是BaseWidget类中定义的一个public 属性,只要是继承BaseWidget的类都可以访问改属性,该属性是com.esri.ags.Map(ArcGIS API for Flex)类型,因此可以使用map对象访问任何在ArcGIS API for Flex中的对象。当widget 被加载之后,widget manager会动态的把当前活动的地图对象关联到widget。 5) 在地图上显示业务数据 a) 添加Graphics Layer 建议为每个Widget都创建一个Graphics Layer。 b) Widget打开/最小化的时候打开/关闭Graphics Layer WidgetTemplate提供了2个窗口状态的事件:widgetOpened 和 widgetClosed,可以使用这两个事件来同步WidgetTemplate窗口状态的变化和Graphics Layer显示。当widget打开的时候显示Graphics Layer,当widget关闭的时候隐藏Graphics Layer。例子如下: 首先侦听widgetOpened 和 widgetClosed事件。 在widgetOpened 和 widgetClosed事件的响应函数中控制Graphics Layer的显示。 6)Widget中使用绘制功能在 Flex Viewer 中通过调用setMapAction方法,可以方便的进行地图上的绘制。setMapAction是在BaseWidget类中定义的public方法,因此只要继承于BaseWidget类的Widget都可以使用该方法。 setMapAction方法的定义如下: 参数: action: String 类型,定义为当前绘制操作的要素类型。对应ArcGIS Flex API 中绘制工具的绘制要素类型。对应列表如表3-2:表 3-2:flexViewrer与ArcGIS API for Flex绘制消息对应表 Flex Viewer ArcGIS API for Flex extent Draw.EXTENT point Draw.MAPPOINT line Draw.LINE polyline Draw.POLYLINE polygon Draw.POLYGON multipoint Draw.MULTIPOINT freehandpolyline Draw.FREEHAND_POLYLINE freehandpolygon Draw.FREEHAND_POLYGON status: String 类型,在控制栏上显示的状态文本。 callback: Function类型,绘制结束后调用的回调函数。回调函数的定义可以参考下面代码: 

猜你喜欢

转载自qs421qs.iteye.com/blog/1572914