Flex Viewer gis2

开发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文件并在<widgets>标签中添加代码:
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的显示。

6Widget中使用绘制功能
Flex Viewer 中通过调用setMapAction方法,可以方便的进行地图上的绘制。setMapAction是在BaseWidget类中定义的public方法,因此只要继承于BaseWidget类的Widget都可以使用该方法。
setMapAction方法的定义如下:

参数:
action: String 类型,定义为当前绘制操作的要素类型。对应ArcGIS Flex API 中绘制工具的绘制要素类型。对应列表如表3-2
3-2flexViewrerArcGIS 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类型,绘制结束后调用的回调函数。回调函数的定义可以参考下面代码:


未完待续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值