随着ArcGIS 10.1发布时间的临近,ArcGIS各产品线的统一命名也被公布,我们熟悉的ArcGIS for iOS被归类到Runtime,称为“ArcGIS Runtime for iOS”。这体现出了Esri对移动平台的重视、已经把对Mobile的支持(iOS、Android、WindowsPhone等)和传统的桌面(Windows、Linux)放在一个级别上了,而原来的ArcGIS API for iOS也更名为“ArcGIS Runtime SDKfor iOS”,可能SDK更符合C/S开发方式的风格,SDK包含了ArcGIS Framework、本地帮助文档和开发示例。
早期的ArcGIS Runtime for iOS功能设计主要是围绕ArcGIS Server发布的各项服务,提供了对于REST服务的浏览、操作和交互,有经验的开发者会发现这和Web API非常接近,因此说只要掌握基础的Object-C,Web开发者也能快速适应iOS移动开发方式。
下面是SDK提供的功能概要:
- 加载来自ArcGIS Server或ArcGIS Online的地图服务(包括:地图服务、影像服务、要素服务、几何服务、地理处理服务等);
- 连接GIS云门户,从ArcGIS.com或Portal for ArcGIS上获取地图服务;
- 执行复杂的地理处理任务;
- 提供多种查询方式,包括Search, query, identify等;
- 使用统一的Popups显示要素的属性信息;
- 通过地图或GPS信号来确定位置坐标;
- 通过本地几何运算库,快速处理图形的几何处理 。
目前最新的2.2版本中,增加了以下新功能:
- 优化了AGSGeometryEngine,使得图形处理效率平均提高2~3倍;
- 新增了对 WMS的支持,包括1.3, 1.1.1和1.1三种版本;
- 新增了AGSPortal接口,可以支持ArcGIS.com或Portal for ArcGIS 的接入,包括用户、组、数据等;
- 优化了要素的渲染效率,尤其是在渲染大数据量时,举例来说:10000个picture符号的点图层;
- Sketch layer在编辑数据时能更好的支持地图的经向循环;
- 通过API可以将所有的Web请求转换为POST方法;
- 如果切片数据有缺失,会动态由比例尺最接近的切片重采样生成;
- 支持ArcGIS Online发布的Web map的更多元素(底图图层、可操作图层、预定义查询、要素采集等);
- 支持军事格网坐标参考(MGRS)。
原有项目升级:
ArcGISRuntime for iOS v2.2支持iOS SDK 4.X及以上版本,同时要求终端的操作系统也是4.X及以上版本,另外由于2.2版本中用“ArcGIS.Framework”取代了之前的静态库“libArcGIS.a”的,所以原有的项目如果要升级到2.2,需要在Xcode中按照以下步骤进行修改:
1.删除libArcGIS.a的引用
2.删除并重新添加资源文件“ArcGIS.bundle”,即
${HOME}/Library/SDKs/ArcGIS/ArcGIS.framework/Versions/Current/Resources/ArcGIS.bundle
3.删除“Build”设置中的“Library Search Paths”参数,即清除
${HOME}/Library/SDKs/ArcGIS/iOS.sdk/usr/local/lib
4.删除“Build”设置中的“the User Header Search Paths”参数,即清除
${HOME}/Library/SDKs/ArcGIS/iOS.sdk/usr/local/include/**
5.在“Build”设置中的“Other Linker Flags”参数,增加“-framework”和“ArcGIS”(“-all_load”和 “-ObjC”依然保留)
6.在“Build”设置中的“Frameworks Search Paths”参数,增加
${HOME}/Library/SDKs/ArcGIS/**
${HOME}/Library/SDKs/**
7.代码中用“import <ArcGIS/ArcGIS.h>”代替之前的“import "ArcGIS.h"”
8.接口变更:“openIntoMapView:withAlternateBaseMap:”方法的参数从AGSWebMap 改为 AGSWebMapBaseMap.