【技术直通车】ArcGIS Runtime SDK for iOS 升级介绍

来源:互联网 发布:mac apache 不解析php 编辑:程序博客网 时间:2024/05/17 02:56


        随着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.





原创粉丝点击