ArcGIS Flex API 初级篇 Esri 中国 ( 北京 ) 有限公司 王坚
提纲 API 介绍 入门 一些概念和例子 获取更多信息
API 介绍
ArcGIS 10 一个完整的系统 发现 创建 管理 可视化 分析 协作 云 企业 本地
ArcGIS Web API 概要 基于 ArcGIS Server REST API - 以 REST 的风格发布 ArcGIS 资源 JavaScript,Flex 和 Silverlight 所有 API 的模式都是一样的
Flex API 简单的历叱 用户普遍接受 活跃的社区 社区代码展示 发布计划表 时间 Flex API Flex Viewer 2011 年 4 月 2.3, 2.3.1 2.3 2010 年 12 月 2.2 2.2 2010 年 9 月 2.1 2.1 2010 年 7 月 2.0 2.0 beta 2008-2009 1.0, 1.1, 1.2 和 1.3
在线网站
API 乊间的关系 ArcGIS Viewer for Flex - 是 API 的扩展 - 模板 - 公共安全, 水资源 / 水污染, 土地管理 ArcGIS API for Flex 自定义开发 - 以 Task 为中心 - 使用 API 实现自己的业务逻辑
Adobe Flash RIA 开发的领军者 企业级应用 Social Application 移劢设备 http://www.adobe.com/flashplatform/customers/ http://www.adobe.com/flashplatform/
Adobe Flash 平台
Adobe Flash 平台不 ArcGIS
为什么选择 Flex 框架? 创建具有以下特点的应用程序 - 交互性及响应 - 易于扩展 - 开发简单, 功能强大 - 跨平台 丰富的组件库 IDE 强大的开发人员社区 - http://www.adobe.com/devnet/flex
入门
如何获取 API Resource Center 网站 - http://resources.arcgis.com/content/arcgis-flex-apidownload - http://links.esri.com/flex 包含的内容 - Readme,API 库文件,Samples,Skins API 库文件 :.swc, 类和资源文件 Samples: 不 resources center 一样 Skins:UI 组件的外观
演示 :Resource Center http://links.esri.com/flex
需要什么 ArcGIS API for Flex 2.* - Adobe Flash Player 10 - Adobe Flex 4 SDK - 能够访问 ArcGIS Server 的服务 建议 - Adobe Flash Buidler 4 (IDE) - 独立安装或 Eclipse 插件 其他 - Adobe Flash Catalyst - Adobe Creative Suite
开发流程 开发过程 MXML/AS3 部署过程 SWF HTML Wrapper web 服务器 SWF HTML Wrapper 浏览器
关于部署 最小化 Flash Player 安装 (10.*) - Wrapper streamlines process 反选 允许集成浏觅器导航功能 使用 RSL(Runtime Shared Library) 导出发布版本 (Release build) Flash Player 跨域问题 - crossdomain.xml - 代理页 ( 安全性 )
crossdomain 文件的位置 ArcGIS Server 和应用程序部署在一台机器上 应用程序 ArcGIS Server 和 crossdomain.xml SWF 地图请求和响应 SWF 地图请求和响应
需要学习哪些知识? MXML - XML 格式的文件, 转换成 ActionScript - UI 组件 皮肤和布局 ActionScript - 基于 ECMAScript 标准 - Flash Player 和 Flex SDK 的编程语言 CSS - UI 组件和皮肤的样式 JavaScript - 在 HTML wrapper 里使用
其他的知识 AIR(Adobe Integrated Runtime) - 桌面应用 - 移劢应用 - Android,iPhone/iPad,Blackberry Playbook Flash Player API 和文档 本地化 Flex 框架的 SDK,Lifecycle Flex 开发框架 - Cairngorm - Parsley - PureMVC -
一些概念和例子
概要 制图和可规化 - 基础底图 - 静态数据 - 劢态图层 - 频繁修改的数据 - 更多交互 - Graphics 分析 - 分析的结果或用户的输入 - Tasks
地图 制图与可视化 Flex API 的主要组件 鼠标 键盘导航 比例尺 平移箭头 十字标记 导航条都可以定制样式 空间参考不比例尺级别 - 由第一个可规的图层决定 - 也可以手劢设定 图层的组合
基础底图 可操作图层不 Graphics 制图与可视化 基础底图 切片 - ArcGIS Server - Bing - OpenStreetMap 劢态图层 劢态生成 - 劢态地图服务 - 影像服务 - ArcIMS - WMS Graphics 客户端要素 - Graphics 图层 - 要素图层 自定义图层
ArcGIS 切片服务 制图与可视化 tileinfo: 切片的元数据 可以添加多个切片地图服务的情况 : - 相同的空间参考 - 可以使用丌同的切片方案 ( 比例尺级别 图片格式等 ) - 只在相应的比例尺级别时显示
ArcGIS 劢态服务 制图与可视化 支持时间属性 disableclientcaching 阻止浏觅器缓存 从 9.3.1 开始, 优化的地图服务格式.msd 可以控制显示哪些图层 Layer Definition 可以过滤图层中显示的数据
基础底图和动态图层的整合
ArcGIS 影像服务图层 制图与可视化 : 可操作图层 ArcGIS 影像服务图层 从 9.3 开始 - 单一数据源或 ArcGIS Server Image 扩展 支持时间属性 指定显示的波段 压缩质量 Mosaic 觃则 栅格函数 Colormap,Hillshade 等
Graphics 图层 制图与可视化 :Graphics( 渲染和符号 ) Graphic=geometry+attributes+symbol 丰富的符号 - 点 线 面 - 图片 文字 InfoSymbol 事件驱劢模型 - 鼠标 键盘 Flex 自身的属性 : - 透明度, 可见性等 2.0 以后的新特性 : 聚合
要素图层 制图与可视化 :Graphics( 渲染和符号 ) 扩展的 Graphics 图层 要素服务或地图服务 可以是图层或表格 支持选择 查询模式 (ondemand,snapshot 等 ) 支持附件 * 如果是要素服务, 则可以编辑 * 使用 ArcGIS Server 的绘制信息 * * 要求 ArcGIS Server 10 以上的版本
符号 制图与可视化 :Graphics( 渲染和符号 ) Graphics 通过符号来渲染 使用 Flash 的 graphics Graphic 由以下内容决定 ( 按优先级顺序 ): - Graphic 定义的符号 - 图层定义的渲染信息 - 图层定义的符号 - Flex API 定义的默认符号
渲染 制图与可视化 :Graphics( 渲染和符号 ) 简单渲染 分级渲染 - ClassBreakInfo 的数组 :1-2,2-3 唯一值渲染 - UniqueValueInfo 的数组 : 列丼字段可能的值 - 支持多个属性 时态渲染 - 任何渲染, 加上时间和分组
要素图层 FeatureLayerBasedOnMapServerLayer
概要 分析 Tasks ArcGIS Server REST API 发布的分析功能 Query,Find(Search),Identify Route,Service Area,Closest Facility Geometry Service Locator Geoprocessing Service
Query Tasks 分析 Tasks 返回要素的集合 通过 Where 语句设置查询条件 过滤返回的字段 设置空间关系, 比如 intersects 每次只能针对一个图层 大小写敏感 可以查询关联的记录,ObjectID, 独立的表
Identify 和 Find 分析 Tasks 一次查询多个图层 丌能指定返回的字段 Identify Task - 响应用户的交互 - 设置查询的图层和选项 (all,visible,top) Find Task - 指定在图层中查询的字段 - 一次请求可以针对多个图层 - 默认是大小写敏感的, 除非勾选了 Contains ( 速度会慢很多 )
Identify vs. Query vs. Find 分析 Tasks Find 服务的功能 - 根据字符串查询属性 - 可以指定具体的图层 Identify 服务的功能 - 可以指定具体的图层 - 可以查询图层的一个子集 (all,top,visible) Query 服务里的图层 - 有空间关系过滤的功能 - 基于 geometry,where 条件或查询文本过滤
Geoprocessing Tasks 分析 Tasks 通过 ArcGIS Server 的服务提供 Geoprocessing 模型的功能 服务的输入参数名称根据模型的输入参数产生 Execute= 同步执行 SubmitJob= 异步执行 - 通过状态检查的回调函数检查任务的进度
Geometry 服务 分析 Tasks 一个处理和计算的资源 支持不 Geometry 相关的操作 Project,Area,Length,Buffer,Label points Relation,Simplify Cut,densify,difference,reshape,convex hull Generalize,intersect,union 其他
网络分析 分析 Tasks 通过 ArcGIS Server 的服务提供网络分析的功能 路径分析 - 停靠点, 障碍点, 方向, 时间窗口等 最近设施 - 事件, 设施, 障碍, 路线, 方向等 服务区 - 设施, 障碍等
具有时间属性的图层和任务 制图和可视化, 分析 ArcGIS 劢态服务和影像服务 - timeinfo - timeoffset - timeoffsetunits Identify 和 Query - timeextent 时间滑块 UI 组件 时态渲染
新的 UI 组件 Editor 模板选择 属性查看窗口 附件查看窗口 图例 时间滑块
如何获取更多的信息 Adobe 和 ESRI 的资源 Esri - http://resources.esri.com - 论坛, 例子 - http://links.esri.com/flex - http://links.esri.com/flexviewer Adobe - http://www.adobe.com/devnet/flex.html - http://www.adobe.com/devnet/flex/videotraining.html - http://www.adobe.com/devnet/flex/tourdeflex.html