Upload
doananh
View
238
Download
3
Embed Size (px)
Citation preview
ArcGIS移动开发技术介绍
马亚军
Web与移动开发组作品定位
GIS-Transforming our World
作品定位
Web与移动开发组:
1、Web GIS应用;
2、Web GIS应用 + 轻量级移动应用;
3、原生移动GIS应用 。
关注移动 or 专注移动
3、原生移动GIS应用 。
原生移动App的特点:
1、设备元素(本地存储及多种传感器:摄像头、陀螺仪等)
2、移动互联(聚合多源服务)
3、社交元素(SNS分享互动)
4、用户体验(不同的OS,不同的屏幕尺寸)
…
目 录
移动原生开发移动原生开发
iOSiOS、、AndroidAndroid、、WindowsWindows
开发环境准备开发环境准备
开发示例开发示例
移动移动WebWeb开发开发 移动移动WebWeb开发开发
JavaScriptJavaScript、、Html5Html5、、CSS3CSS3
移动混合开发移动混合开发
Phone Gap/CordovaPhone Gap/Cordova
总结总结
移动原生开发
GIS-Transforming our World
ArcGIS Runtime SDKs
WPF
OS X
Desktop
Phones &tablets Embedded
QT
JavaSE
WindowsMobile
WindowsStore App
iOS
AndroidWindows
Phone
tablets Embedded
ArcGIS Runtime Architcture
Tile Package GPS
WPF Java
Geocoding Mapping
GeoProcessing Editing
LocalServer
本地功能Messaging
OpenGL/ES DirectX
AdvancedSymbology
Server Sync Offline Routing
Spatial AnalysisOffline
Geocoding
Geocoding Mapping
GeoProcessing Editing
iOS Android
WindowsPhone
WindowsStore app
RemoteServer
RuntimeCore
本地功能
网络功能
开发环境准备
GIS-Transforming our World
OSX 10.7 or 10.8
Xcode
iOS SDK 5.0以上
加入 Apple’s iOS Developer 计划
- Standard : AppStore distribution
iOS SDK 开发环境
- Standard : AppStore distribution
- Enterprise : In-House distribution
ArcGIS Runtime for iOS
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
Android 开发环境
Android API –2.3… 4.X
ArcGIS Runtime SDK for Android
Windows 7
- Windows Phone SDK 7.1
- Visual Studio 2010
- Expression Blend 4
Windows 8
Windows Phone 开发环境
- Windows Phone SDK 8.0
- Visual Studio 2012
- Blend for Visual Studio 2012
ArcGIS Runtime SDK for Windows Phone
运行环境Window 8 & RT
开发环境Windows 8,VS2012
微软Windows Store应用商店账户
ArcGIS Runtime SDK 10.2 Beta for Windows Store apps
Windows Store App开发环境
ArcGIS 移动开发的过程-iOS为例
GIS-Transforming our World
-iOS为例
移动SDK的四大功能
数据:Service & Map
- 基础底图
- 数据服务
- Web Map
图形:Graphics
- 在地图上动态绘制Graphic
- 创建标注
ArcGIS Runtime 移动SDK
Tools
- 创建标注
任务:Tasks
- 搜索, 空间查询, 查找GIS要素
- 对地址进行定位,地理编码
- Geometry操作(支持本地)
- Geoprocessing Task
工具:Editing Tools
- Sketch layer
- 属性页Popup
MapTask
Portal
地图容器
UI 组件
- 响应手势操作
- 显示GPS位置
- 触发Callout
数据融合(mushup)
地图组件 MapView
SketchLayer
- 叠加ArcGIS Server 发布的服务
- 叠加Bing map、OpenStreetMap
- 支持WMS、WMTS服务
- 切片地图包Tpk
- 离线空间数据库Geodatabase
- 自定义图层GraphicLayer
- 手绘图层SketchLayer AGSMapView
Layer
Layer
GraphicLayer
Graphic
Symbol
Geometry
Attributes
SketchLayer
通过委托的方式实现
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
1 声明AGSMapViewTouchDelegate协议
2 实现AGSMapViewTouchDelegate协议的方法
举例:响应地图touch事件
2 实现AGSMapViewTouchDelegate协议的方法
3 设置委托(Delegate)
图形(Graphics)
几何(Geometry)
属性(Attribute)
符合(Symbol)
符号(Symbol)
符号与渲染
Symbol
Geometry
符号(Symbol)
Picture ,Marker ,Line ,Fill, Composite、Text、
Military Symbol
渲染(Render)
简单(Simple)
唯一值(Unique Value),分类(class break)
时态(Temporal)
Attributes
Graphic(Feature)
在线请求与处理
Query ,Find ,Identify Task
在地图中查找要素
Geometry Service Task
投影,缓冲区分析、距离计算,面积计算等
Geoprocessing Task
地理分析服务,通过GPTool或Model来实现
Task
Locator
地址编码和逆地址编码
Rout Task
点对点以及多点间路径分析
服务区域查询
支持路障、时间窗口以及最佳顺序
Task执行的一般流程
1、声明Task相关协议
2、实现协议方法
Task执行的一般流程
3、初始化Task
4、设置委托4、设置委托
5、执行Task
离线请求和处理
Download
从要素服务或Desktop导出指定范围的数据离线
Geodatabase、tpk
Search ,Edit
在地图中查询要素、编辑
Synchronize
Local Task
将编辑结果同步到数据源
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的资源组成
AGSCredentialAGSCredentialCache
支持以多种方式保证服务与资源的安全
Web一张图
简介
• 专为数据采集而设计
• 为嵌入了GPS模块的智能手机而设计
• 采集属性信息、空间信息、图片
• 采集的数据可通过Operation Dashboard实
时展示
典型原生App:Collector (iOS、Android)
功能
• 搜索和使用ArcGIS Online上的WebMap
• 采集图片、视频、属性、位置等数据
• 编辑webmap
• 地图切换、测量、路径规划
典型原生App:Quakefeed(iPad)
轻
多平台
小结
Mutiple
原生
快速
强大 开发简单
轻
量级
Native easy
Light
weight
Powerful
fast
Web开发
GIS-Transforming our World
愿景
• 编写一次,到处运行
特点
• 基于浏览器
• 支持跨平台
面向移动的Web开发
• 支持跨平台
• 支持多终端
应用场景
• 简单地图展示,较少用户交互
• 在线数据获取,保持网络连接
开发技术
• AGS JavaScript API(compact)
• 开发框架
• Dojo Mobile
• Jquery Mobile
移动Web开发的技术路线
Jquery Mobile
• Sancha Mobile
• Appcelerator titanium
支持功能
• UI匹配:设备型号和屏幕尺寸
• 设备响应:方向识别、定位、手势、水平方位等
混合开发
GIS-Transforming our World
愿景
• 编写一次,到处运行 + 功能强健
特点
• 原生 + Web
• 虚拟层
Hybrid开发
• 虚拟层
• 核心代码是JS
应用场景
• 简单地图展示,较少用户交互
• 在线数据获取,保持网络连接
Hybrid开发流程-Phone Gap/Cordova
安装环境
• 配置iOS\Android\Windows\Bb对应的开发环境
• 下载Cordova源码,运行其开发示例的同时会
编译得到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 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/
纵览趋势 分享成功