ArcGIS 移动开发技术介绍 马亚军
Web 与移动开发组作品定位 GIS-Transforming our World
关注移动 or 专注移动 Web 与移动开发组 : 1 Web GIS 应用 ; 2 Web GIS 应用 + 轻量级移动应用 ; 3 原生移动 GIS 应用 原生移动 App 的特点 : 1 设备元素( 本地存储及多种传感器 : 摄像头 陀螺仪等 ) 2 移动互联( 聚合多源服务 ) 3 社交元素(SNS 分享互动 ) 4 用户体验( 不同的 OS, 不同的屏幕尺寸 )
目录 移动原生开发 ios Android Windows 开发环境准备 开发示例 移动 Web 开发 JavaScript Html5 CSS3 移动混合开发 总结 Phone Gap/Cordova
移动原生开发 GIS-Transforming our World
ArcGIS Runtime SDKs OS X Desktop Phones & tablets Windows Store App WPF Embedded ios QT Android Windows Phone Windows Mobile JavaSE
本地功能网络功能ArcGIS Runtime Architcture Local Server Geocoding GeoProcessing Mapping Editing WPF Java Tile Package GPS Runtime Core OpenGL/ES Server Sync 功Advanced Messaging Symbology DirectX Offline Routing ios Windows Store app Android Spatial Analysis Offline Geocoding Remote Server Geocoding GeoProcessing Mapping Editing Windows Phone
开发环境准备 GIS-Transforming our World
ios SDK 开发环境 OSX 10.7 or 10.8 Xcode ios SDK 5.0 以上加入 Apple s ios Developer 计划 - Standard : AppStore distribution - Enterprise : In-House distribution ArcGIS Runtime for ios
Android 开发环境 Eclipse 3.6.2 (Helios) 或更高 - Eclipse's Java development tools (JDT) - Android Development Tools (ADT) plug-in 最新版本 JDK 6 Android API 2.3 4.X ArcGIS Runtime SDK for Android
Windows Phone 开发环境 Windows 7 - Windows Phone SDK 7.1 - Visual Studio 2010 - Expression Blend 4 Windows 8 - Windows Phone SDK 8.0 - Visual Studio 2012 - Blend for Visual Studio 2012 ArcGIS Runtime SDK for Windows Phone
Windows Store App 开发环境 运行环境 Window 8 & RT 开发环境 Windows 8,VS2012 微软 Windows Store 应用商店账户 ArcGIS Runtime SDK 10.2 Beta for Windows Store apps
ArcGIS 移动开发的过程 -ios 为例 GIS-Transforming our World
移动 SDK 的四大功能
ArcGIS Runtime 移动 SDK 数据 :Service & Map - 基础底图 - 数据服务 - Web Map 图形 :Graphics - 在地图上动态绘制 Graphic - 创建标注 Tools 任务 :Tasks - 搜索, 空间查询, 查找 GIS 要素 Task Map - 对地址进行定位, 地理编码 - Geometry 操作 ( 支持本地 ) - Geoprocessing Task Portal 工具 :Editing Tools - Sketch layer - 属性页 Popup
地图容器
地图组件 MapView UI 组件 - 响应手势操作 - 显示 GPS 位置 - 触发 Callout 数据融合 (mushup) - 叠加 ArcGIS Server 发布的服务 - 叠加 Bing map OpenStreetMap - 支持 WMS WMTS 服务 - 切片地图包 Tpk - 离线空间数据库 Geodatabase - 自定义图层 GraphicLayer SketchLayer Geometry Symbol Attributes Graphic GraphicLayer Layer Layer - 手绘图层 SketchLayer AGSMapView
地图组件的事件响应 通过委托的方式实现 MapView Layer Delegate - Map Load,faild to load MapView Touch Delegate - Tap, Tap and hold - Move and hold MapView Callout Delegate - Did Show Callout, Should Show Callout,Should dismiss Layer Delegate - Layer Load, faild to load Callout Delegate - Did Click Accessory Button
举例 : 响应地图 touch 事件 1 声明 AGSMapViewTouchDelegate 协议 2 实现 AGSMapViewTouchDelegate 协议的方法 3 设置委托 (Delegate)
符号与渲染 图形 (Graphics) 几何 (Geometry) 属性 (Attribute) 符合 (Symbol) Geometry Symbol 符号 (Symbol) Picture,Marker,Line,Fill, Composite Text Military Symbol Attributes 渲染 (Render) 简单 (Simple) 唯一值 (Unique Value), 分类 (class break) 时态 (Temporal) Graphic (Feature)
在线请求与处理
Task Query,Find,Identify Task 在地图中查找要素 Geometry Service Task 投影, 缓冲区分析 距离计算, 面积计算等 Geoprocessing Task 地理分析服务, 通过 GPTool 或 Model 来实现 Locator 地址编码和逆地址编码 Rout Task 点对点以及多点间路径分析服务区域查询支持路障 时间窗口以及最佳顺序
Task 执行的一般流程 1 声明 Task 相关协议 2 实现协议方法
Task 执行的一般流程 3 初始化 Task 4 设置委托 5 执行 Task
离线请求和处理
Local Task Download 从要素服务或 Desktop 导出指定范围的数据离线 Geodatabase tpk Search,Edit 在地图中查询要素 编辑 Synchronize 将编辑结果同步到数据源 Geometry Engine 在客户端实现的几何操作引擎, 投影, 缓冲区分析 距离计算, 面积计算等 Routing 离线使用点对点以及多点间路径分析 Geocoding 离线使用地理编码与反地理编码
离线数据使用的一般流程 1 下载 / 导出数据 ArcGIS for Desktop 10.2.1: 菜单 > Share As > Runtime content ArcGIS for Server 10.2.1: 支持同步的要素服务 (sync-enabled feature services) 2 加载
离线数据使用的一般流程 3 查询 / 编辑
离线数据使用的一般流程 4 同步
连接 GIS 门户
Portal 的相关类 AGSPortal 连接 登陆 搜索查询组 用户 资源 ( 空间数据 服务 文档 符号集 应用程序等 ) AGSWebMap 获得 web map 的访问连接 查询 web map 的资源组成 AGSCredential AGSCredentialCache 支持以多种方式保证服务与资源的安全
Web 一张图
典型原生 App:Collector (ios Android) 简介 专为数据采集而设计 为嵌入了 GPS 模块的智能手机而设计 采集属性信息 空间信息 图片 采集的数据可通过 Operation Dashboard 实时展示 功能 搜索和使用 ArcGIS Online 上的 WebMap 采集图片 视频 属性 位置等数据 编辑 webmap 地图切换 测量 路径规划
典型原生 App:Quakefeed(iPad)
小结 多平台 Mutiple 轻 Light weight 量级 fast 快速 强大 Powerful 原生 Native 开发简单 easy
Web 开发 GIS-Transforming our World
面向移动的 Web 开发 愿景 编写一次, 到处运行 特点 基于浏览器 支持跨平台 支持多终端 应用场景 简单地图展示, 较少用户交互 在线数据获取, 保持网络连接
移动 Web 开发的技术路线 开发技术 AGS JavaScript API(compact) 开发框架 Dojo Mobile Jquery Mobile Sancha Mobile Appcelerator titanium 支持功能 UI 匹配 : 设备型号和屏幕尺寸 设备响应 : 方向识别 定位 手势 水平方位等
混合开发 GIS-Transforming our World
Hybrid 开发 愿景 编写一次, 到处运行 + 功能强健 特点 原生 + Web 虚拟层 核心代码是 JS 应用场景 简单地图展示, 较少用户交互 在线数据获取, 保持网络连接
Hybrid 开发流程 -Phone Gap/Cordova 安装环境 配置 ios\android\windows\bb 对应的开发环境 下载 Cordova 源码, 运行其开发示例的同时会 编译得到 cordova 运行时 创建 Cordova 项目 初始化视图 -CDVViewController 将 HTML, CSS and JavaScript 拷贝到 www 目录下 配置 wwwfoldername startpage 参数 JS 通过虚拟层接口访问移动设备的属性 (Battery Status Camera Contacts Device ) 编译 Cordova 项目 与原生 App 相同
总结 GIS-Transforming our World
小结 原生开发 (ios Android Windows) 功能最全面 有很多方便的工具类 示例丰富 扩展容易 *ios- 系统相对封闭, 上手有一定难度 *Android- 容易上手, 扩展较复杂 实体机硬件环境不统一, 后续维护工作量较大 *Windows Phone- 本地化功能较弱, 代码移植容易 上手快 但用户群小, 发展缓慢 *Windows Store app- 开发方法多样 代码移植容易 随着微软推广政策的不断加强和硬件设备的增加, 使用者和开发者会更多 web 开发 轻量级跨平台, 随着浏览器对 HTML5 的支持力度增强, 将来有望扩大影响力 混合开发 中量级跨平台, 需要选择稳定可持续发展的框架
帮助信息 ArcGIS Runtime SDKs for ios 帮助信息 https://developers.arcgis.com/en/ios/ ArcGIS Runtime SDKs for Android 帮助信息 https://developers.arcgis.com/en/android/ ArcGIS Runtime SDKs for Windows Phone 帮助信息 http://resources.arcgis.com/en/communities/windows-phone-sdk ArcGIS Runtime SDKs for Windows Store app 帮助信息 https://developers.arcgis.com/en/windows-store/ ArcGIS API for JavaScript 帮助信息 https://developers.arcgis.com/en/javascript/ Cordova 帮助信息 http://cordova.apache.org/
纵览趋势 分享成功