`
lch_2010
  • 浏览: 35160 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex Viewer gis2

    博客分类:
  • java
阅读更多

开发Widget开发工具:Flex Builder3
开发语言:ActionScript & mxml
1
)开发环境配置:
a)
首先确保Flex Builder3Flex SDK 3.1)安装成功,并下载Flex viewerlibs目录中包含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.MapArcGIS 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类型,绘制结束后调用的回调函数。回调函数的定义可以参考下面代码:


未完待续...

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics