对于 ArcGIS for iOS 地图开发,这里不再多提,网上很多教程.
在开发中,当一切部署完成,呈现地图时,在我的地图界面显示了 "licensed for developer use only"水印.这对于公司项目开发肯定是不允许的,所以必须想办法解决.
对于初次接触 ArcGIS 地图的我来说,前面一抹黑.但是既然发现了问题,那么便需要解决问题.解决问题,必须要知道问题是如何产生的.于是百度一番,得到如下信息:
先给个链接,可以了解下水印为何产生,http://www.ithao123.cn/content-9477842.html
从10.2.2版本开始,ArcGIS Runtime的许可授权分为开发模式和部署模式两种。开发模式下,开发者丌需要对应用进行许可授权,即可使用全部的功能模块,但是地图上会标注“Used for Developer Only”水印,在debug调试信息中也会打印相关提示信息。在部署模式下基于ArcGIS Runtime SDK开发的应用要求必需提供许可授权,代码中注册许可信息后,地图上的水印和debug调试信息将消失。
ArcGIS Runtime 许可分基础版(Basic)和标准版(Standard)两个版本。基础版支持在线地图显示,编辑,执行基于服务的分析功能和离线地图显示。标准版包含了基础版的全部功能,以及离线地图编辑和同步,离线地理编码和离线网络分析等高级功能。
在应用发布部署之前,应用必须进行许可授权。对于基础版许可,应用中需要注册ClientID,ClientID可以以开发者账户戒arcgis.com组织试用账户登录esri开发者网站申请(免费)。标准版许可,用户同样需要注册ClientID,另外可以通过以下两种方式来解锁标准版功能:
1)使用ArcGIS Online戒Portal for ArcGIS 组织账户授权。在应用中编码向ArcGIS Online戒Portal获取许可信息,这种方式支持30天周期的标准版许可,在周期内许可可实现离线使用。但是超过30天最长使用期,应用需要在联网状态下重新获取标准版许可,否则叧能使用基础版功能。
2)购买ArcGIS Runtime SDK标准版永久授权,这种方式可以实现许可永久离线使用。在绝对禁止联网的情况下,需要采用这种模式。
下表显示了不同级别下所具有的功能
许可级别 | 可用功能 |
开发者(仅用于开发和测试) | 所有功能(将产生水印和调试消息) |
基础版 | 除了下述功能的所有功能: 本地定位器(地理编码) 本地路径分析 本地地理数据库编辑 本地地理数据库同步操作 |
标准版 | 所有功能 |
知道了为什么产生水印之后,那便是该如何解决水印了.根据上面链接可以知道,我们需要获得一个授权,那么 访问 developer.arcgis.com 并用ArcGISfor Developer账户登录.通过一系列注册得到Client ID字符串.
拿到 Client ID 怎么用?...百度了一圈,都是关于Android 对于Client ID的用法, iOS 相关资料少得可怜.最后,经过一番查询,最终在百度文库中得到了答案.
只需要在项目开始时,
//设置ARCGis的ClientID,清除水印
[AGSRuntimeEnvironment setClientID:ArcGISClientID error:nil];
如此,便大功告成了.再启动项目,便发现水印消失了.