深入浅出Flex Viewer (一)——概述

一、Flex Viewer简介

        Flex Viewer是ESRI公司推出的可以高效开发基于WEB的地理信息应用系统的一种完全免费的应用程序框架。业务人员使用该框架可以无需任何额外的编程就能够通过简单配置的方法快速搭建起一个基于ArcGIS Server的、以地图为中心的富客户端(RIA)应用的原型。该框架中还自带了大量的能够满足各种地图应用需要的Widget,如Identify、GeoRSS、DataExtract、BookMark、NetworkAnalyst、MapSwitcher等地图交互和分析等工具。同时,如果需要增加新的Widget,则开发人员只需在自定义的Widget中实现框架要求的接口,然后再将该Widget配置到框架中的Config.xml文件中,就能在无需修改框架代码的情况下轻松地完成独立Widget与框架的无缝集成。框架运行界面如下图所示:

image

图1 运行界面

二、Flex Viewer实例的运行周期

         Flex Viewer是基于Adobe公司推出的Flex开发出来的典型的Flex应用,它拥有和其它所有Flex应用程序相同的生命周期,即均由浏览器中Flash Player进行加载和管理,如下所示步骤1。在Flex Viewer启动后,Flex Viewer会自动加载相应的配置文件,,并根据该文件中的各种配置项来初始化系统的功能、界面,以及加载和显示相关组件对应的flash文件(步骤2)。接着,系统初始化地图窗口,并根据配置文件中配置的图层从运行于ArcGIS Server(也可为其它数据源,但需扩展)中获取地图数据(步骤3)。最后,系统根据配置信息及用户操作动态加载对应Widget相关的Flash文件(步骤4),并在用户与该Widget交互的过程中向外部服务器获取数据和分析服务(步骤5)。

image

图2 实例的生命周期

三、Flex Viewer的价值

       Flex Viewer这个框架的核心价值将程序员各种复杂的编程细节中解放了出来,如地图的管理、地图的浏览、应用的配置、内部组件的通信、数据的管理等。它允许Web开发人员,特别是那些使用ESRI的ArcGIS技术的开发人员,能够得以专注于他们自定义的应用程序的核心业务功能的开发上。另外,也正是这个原因,使得开发人员能够以配置的而非编程的方式将含有新功能的Widget快速地继承到已有的Flex Viewer框架中。

四、目标读者

       1、使用Flex Viewer搭建原型的业务人员;

       2、开发Flex viewer Widget组件的开发人员;

       3、以及希望改造Flex Viewer已有框架的架构师等。

五、本系列的写作目的

        由于Esri免费开放了Flex Viewer的源代码,所以开发人员可以对该框架拥有更细粒度的控制权。因此,笔者希望通过本系列文章向读者深入介绍该框架的架构和设计原理,以使得读者能够全面、透明地掌握该框架,从而使其能够结合具体的业务需求以最简洁、最合理的方式对框架进行配置、开发或改造。

         另外,由于本系列的定位主要是针对那些对Flex Viewer的使用有所了解,并希望进一步深入理解其内部设计原理的读者,所以Flex Viewer工程的配置,以及基本功能的使用,本文将不会涉及,请有需要的朋友查阅相关的帮助文档(http://help.arcgis.com/en/webapps/flexviewer/help/index.html)。

六、系列文章简介

         该框架从2008年9月推出1.0版以来至今已近发展到了2.1版,本系列将针对当前最新的2.1版陆续推出另外六篇文章来向读者深入介绍Flex Viewer的设计原理:

          1、在《深入浅出Flex Viewer (二)——体系结构》中,笔者从该框架的架构入手,深入依次介绍关键构件的设计原理和其相互关系,使读者能够对系统的架构拥有一个整体、清晰地理解;

          2、在《深入浅出Flex Viewer (三)——Config的原理》中,笔者将介绍Config文件所支持的所有配置项,以及用于解析该配置项的构件,及其相应的设计原理和数据结构,从而为读者对下篇《深入浅出Flex Viewer (四)——系统初始化的那些事儿》的理解作铺垫;

          3、在《深入浅出Flex Viewer (四)——系统初始化的那些事儿》中,笔者将详细介绍从Flash Player加载系统对应Flash文件开始到系统初始化完成的全过程,读者通过这篇文章能够掌握系统在初始化的过程中涉及到了哪些构件、做了哪些事、如何做到的,以及初始化后得到了哪些后期可重复利用的数据结构;

           4、在《深入浅出Flex Viewer (五)——Widget的原理》中,笔者将深入介绍Widget的开发和其所需的关键抽象类和接口,以及Widget与框架能够无缝集成的原理;

           5、在《深入浅出Flex Viewer (六)——如何增加新的数据源》中,笔者将以google map的底图数据作为新的数据源为例,向读者介绍数据源的扩展方法。

七、系列文章目录

         《深入浅出Flex Viewer (一)——概述》

         《深入浅出Flex Viewer (二)——体系结构》

         《深入浅出Flex Viewer (三)——Config文件详解》

         《深入浅出Flex Viewer (四)——系统初始化的那些事儿》

         《深入浅出Flex Viewer (五)——Widget的原理》

         《深入浅出Flex Viewer (六)——如何增加新的数据源》

转载于:https://www.cnblogs.com/wowMVP/archive/2010/12/05/1896726.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简介..... ................................................................................................................................... 4 1.1 准备知识.......................................................................................................................... 4 1.1.1 技能与软件需求......................................................................................................... 4 1.1.2 获取源代码与所需库.................................................................................................. 4 1.2 文件组织…..................................................................................................................... 5 2 Sample Flex Viewe架构 ....................................................................................................... 5 2.1 架构介绍 .......................................................................................................................5 2.2 Sample Flex Viewer实例的生命周期............................................................................ 6 2.3 Sample Flex Viewer容器............................................................................................... 7 2.4 理解Widget编程模型..................................................................................................... 8 2.5 Widget命名习惯............................................................................................................. 9 3 为Widget开发建一个Flex Builder项目................................................................................ 9 3.1 用Sample Flex Viewer FlexBuilder项目开发一个微件.................................................. 10 3.2 在Sample Flex Viewer的FB项目之外开发一个widget.................................................. 12 3.3 为Flex Builder设置测试服务器...................................................................................... 14 4 开发一个widget ..................................................................................................................... 15 4.1 使用WidgetTemplate模板 ............................................................................................. 16 4.2 获取地图信息............................................................................................................... 17 4.3 在地图上显示widget数据 ............................................................................................. 19 4.4 从地图接收数据(通过单击,画线等操作实现)............................................................. 20 4.5 在widget中控制导航.................................................................................................... 21 4.6 不使用WidgetTemplate模板开发Widget ..................................................................... 22 4.7 开发一个自己的Widget模板 ........................................................................................ 23 4.8 修改或是创建一个主题 ................................................................................................ 24 4.9 Widget的配置............................................................................................................... 25 5 了解Sample Flex Viewer核心代码...................................................................................... 26 5.1 事件总线容器 .............................................................................................................. 26 5.2 依赖注入(DI,也叫控制反转)...................................................................................... 29 5.3 国际化 ......................................................................................................................... 30 第 3 页 5.3.1 使用Flex的国际化特性 .................................................................................................30 5.3.2 本地化设置 ................................................................................................................ 32 5.4 日志和错误处理 .......................................................................................................... 33 6 Sample Flex Viewer框架和Widget部署.............................................................................. 35 6.1 部署一个Sample Flex Viewer应用程序....................................................................... 35 6.2 部署一个widget到Sample Flex Viewer ........................................................................ 35 6.3 安全性考虑 ................................................................................................................. 36 6.3.1 crossdomain.xml ..................................................................................................... 36 6.3.2 网络资源代理........................................................................................................... 37 7 附录A: Configuration XML..................................................................................................37

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值