2018-04-12 11:29:14 liu132641 阅读数 1666

      不积跬步,无以至千里。创造力都是在不断的总结中提炼出来的,为此不断激励自己把自己所学到的东西给记录下来。ArcGIS是一项很强大的技术,随着智能移动设备的不断崛起,它在智能移动设备上的应用也是越来越多!也是因为项目上的需要,所以有幸接触到这一块。

这里主要分成两大板块:一是“安装ArcGIS Runtime SDK for iOS”,二是“手动配置新工程”

一、安装ArcGIS Runtime SDK for iOS到Mac电脑上

1、系统需求:

1.1、所支持的操作系统

Intel-based Macintosh running Mountain Lion (OS X 10.8.4 or higher) or Mavericks (OS X 10.9) is required;Yosemite 10.10.5也是可以的

1.2、开发环境的软件(Xcode及SDK版本)

Xcode5 安装的是iOS 7 SDK,或者Xcode6 安装的是 iOS 8 SDK;我调试的事Xcode6.4 安装的SDK是iOS SDK 8.4

2、下载安装ArcGIS Runtime SDK for iOS;下载地址是百度云盘:http://pan.baidu.com/s/1sjFXfGh   提取密码:9rc5


二、如何手动配置新工程

主要有如下的步骤:

*添加ArcGIS 到“framework search paths”

*添加一些build 标志

*添加依赖的框架

*添加ArcGIS 资源捆绑包

*在需要使用ArcGIS中导入(import)文件

1、添加ArcGIS 到“framework search paths”

在Xcode的左上角选择project navigator栏选中项目,之后在中间的现实栏中->TARGETS中的第一个->Build settings->在搜索栏中输入framework search paths,之后双击,在弹出的弹框中点击“+”并输入“$(HOME)/Library/SDKS/ArcGIS/iOS/”,具体如下图所示:




2、添加build flags

同样的如上边的步骤类似,在搜索栏中输入“Other Linker Flags”,并双击右侧在弹出框中输入“-objc -framework ArcGIS -l c++”,具体如下图:



3、添加相应的依赖框架

由于ArcGIS框架反过来依赖许多其他的iOS框架。为了确保这些依赖的框架在build期间被链接到的最简单的方式是设置“Enable Modules(C and Objective-C)”为YES。这样的设置之后项目中ArcGIS所需要的任意的系统框架以及库工程都会自动的去查到。具体的设置为为:



另外一个方法是,通过手动的添加所有需要的依赖框架以及库文件到项目工程下,相应的依赖框架和库如下所示



4、添加ArcGIS资源捆绑包

相应的资源是:API资源,例如:Esri以及Bing的logo图片,GPS位置符号,本地化字符串等资源本整合到了ArcGIS.bundle文件,该文件默认是被安装在${HOME}/Library/SDKs/ArcGIS/iOS/ArcGIS.framework/Versions/Current/Resources路径下(针对的是Mac OS X系统下),具体如何添加到工程中,如下图所示,选择Add Files to...之后在相应的路径下(默认为上述路径)选择ArcGIS.bundle之后确定就成功添加该捆绑包!



5、导入文件(Import file)

在任何需要使用ArcGIS的API的文件中(.h或者.m文件),添加如下的import语句

#import <ArcGIS/ArcGIS.h>



2014-01-08 11:46:15 ten11 阅读数 1289
    self.dynamicLayer = [[AGSDynamicMapServiceLayer alloc] initWithURL:[NSURL URLWithString:@"http://192.168.0.2:6080/arcgis/rest/services/EARTHQUAKE/MetropolitanCatalogService/MapServer"]];

    //通过定义数组里面的值,可以控制对应的层显示,例如 数组为2 则显示2
    self.dynamicLayer.visibleLayers = [NSArray arrayWithObjects:[NSNumber numberWithInt:2], nil];
    [self.mapView addMapLayer:self.dynamicLayer withName:@"Dynamic Layer"];
以上代码就是ArcGIS for IOS  控制动态图层显示哪层显示与否
2016-12-12 11:19:14 markWX 阅读数 2144

  对于 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 相关资料少得可怜.最后,经过一番查询,最终在百度文库中得到了答案.

文档地址:http://wenku.baidu.com/link?url=eUwBbWPafkGh79BQANz1dq81H-mgjNevGW7WbYUB5zbKCa1_pBdRmZZ82w8txL8_pw4IbEhJTh_k-Ca1J3Oc87f8Ud5Fj8YvdbUSpGsSIhi

只需要在项目开始时,

   //设置ARCGisClientID,清除水印

    [AGSRuntimeEnvironment setClientID:ArcGISClientID error:nil];

   如此,便大功告成了.再启动项目,便发现水印消失了.



没有更多推荐了,返回首页