搞定了环境配置,我们赶快开始ArcGIS for iOS开发吧,按惯例首先创建一个“Hello World Map”程序,使用在上一节中我们新建好的项目。

第一步:配置界面。


找到“ViewController_iPhone/iPad.xib”(分别针对了iPhone和iPad不同的布局),在内容窗口中可以看到只有一个空白的View视图,右下侧的工具窗口切换到组件对象,其中列举了Cocoa Touch库的全部可视化组件,定位到“View”对象,将其直接拖到内容窗口里,一个新的子视图就添加成功了,同时还添加了Constraints(Xcode4.5的新特性,宽高布局限制),把新添加的视图重命名为“Map View”。

图3-1 添加地图视图

选中“Map View”视图,在右上侧的属性窗口切换到“inspector”项,修改其继承类为“AGSMapView”。

图3-2 修改Map View的继承类为AGSMapView

然后“Command + s”保存。

第二步:添加代码。


1)             头文件“ViewController.h”,添加ArcGIS头文件引用,并声明一个地图控件的属性,代码如下:

#import <UIKit/UIKit.h>
#import <ArcGIS/ArcGIS.h>@interface TMViewController : UIViewController
@property(nonatomic,strong)IBOutletAGSMapView *mapView;
@end

* @property关键字:公共属性标记,相当与“Get-Set”构造,4.0以前的版本中与synthesizes成对使用,4.0之后不再需要synthesizes。

* IBOutlet关键字:界面 “插座”标记(以前的界面编辑工具Interface Builder,4.0后被集成进了Xcode,“插座”,表示与界面元素连接的属性对象。与之呼应的还有一个IBAction,表示界面元素的事件响应。

不想敲太多这种机械代码的话,还可以在界面视图中完成,选中要连接的界面对象,右键拖动到代码窗口,会弹出一个小对话框,输入属性名称mapView,确定后会自动生成这个属性。

图3-3 自动生成属性

2)             打开类文件“ViewController.m” ,在viewDidLoad方法中添加如下代码:

- (void)viewDidLoad
{[superviewDidLoad];// //基础底图,使用的是北京捷泰科技有限公司提供的在线地图,更多地图请登陆ArcGIS Online中国网址查询(http://www.arcgisonline.cn)NSString *str_URL = @"http://www.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer";NSURL *url_Tiled = [NSURLURLWithString:str_URL];AGSTiledMapServiceLayer *tiledLyr = [AGSTiledMapServiceLayertiledMapServiceLayerWithURL:url_Tiled];[self.mapViewaddMapLayer:tiledLyrwithName:@"TiledLayer"];//动态图层,使用ArcGIS Online的全球人口数据NSString *str_URL_1 = @"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer";NSURL *url_Dynamic =[NSURLURLWithString:str_URL_1];AGSDynamicMapServiceLayer *dynamicLyr =[AGSDynamicMapServiceLayerdynamicMapServiceLayerWithURL:url_Dynamic];UIView<AGSLayerView>*dynamicLyrView = [self.mapViewaddMapLayer:dynamicLyrwithName:@"PopulationLayer"];//设置动态图层透明度dynamicLyrView.alpha = 0.3;//设定地图初始化显示范围为中国AGSEnvelope *chinaEnv = [AGSEnvelopeenvelopeWithXmin:7800000.00ymin:44000.00xmax:15600000.00ymax:7500000.00spatialReference:self.mapView.spatialReference];[self.mapViewzoomToEnvelope:chinaEnvanimated:YES];
}


第三步:绑定界面与代码。


Xcode里绑定界面元素与代码对象的操作方法很艺术,选中界面视图的File’s Owner,右上侧属性窗口切换到“Connections”项,“Outlets”里有一个mapView对象,这就是我们在ViewController.h中声明的地图控件属性。拖动其右侧的空心小圆圈,牵引到左侧界面对象“Map View” 上,绑定成功后,小圆圈就变成实心了的,再次保存。

图3-3 绑定地图控件与代码对象

第四步:保存工程,“Command+ r ”运行并调试“HelloWorld Map”。

图3-4 在iPhone5模拟器中运行“Hello World Map”

*REST和JSON大家都应该很熟悉了,ArcGIS Server发布的服务支持SOAP、REST两种结构,而Web和移动API中都使用其REST服务接口,比如上文中提到的地图服务:http://yourServer/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer。数据交互使用的是更为灵活高效的JSON格式,ArcGIS框架中集成了第三方库json-framework来负责中间层的数据转换,开发者一般不用操心。

推荐阅读:
1、ArcGIS Runtime SDK for iOS开发系列教程(4)——如何让你的iOS应用具有GIS能力:http://www.cnblogs.com/esrichina/archive/2012/11/05/2750569.html
2、ArcGIS Runtime SDK for iOS开发系列教程(2)——MapViewDemo解析:http://www.cnblogs.com/esrichina/archive/2012/09/01/2666647.html

ArcGIS for iOS 开发系列(3) – 基础篇-“Hello World Map”相关推荐

  1. 系列:iOS开发-C语言基础

    #系列:iOS开发-C语言基础 之前也说了iOS中的OC是扩充C的面向对象编程语言 那么无论是从什么角度来说都要首先回顾一下C的内容,虽然很多人在大学的时候都有学习过C语言,一提到谭浩强,我估计90% ...

  2. iOS开发系列--IOS程序开发概览ios基础

    iOS开发系列--IOS程序开发概览 概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的I ...

  3. QCC304x系列开发教程(基础篇)之2.4-QCC3040之如何修改MDE的主题

    查看全部教程开发请点击:高通蓝牙耳机QCC304x开发详解汇总(持续更新中) 查看本文全部文章请点击:QCC304x系列开发教程(基础篇)之2.3-QCC3040之如何修改MDE的主题 ======= ...

  4. iOS开发系列--让你的应用“动”起来

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

  5. iOS开发系列--UITableView全面解析

    iOS开发系列--UITableView全面解析 2014-08-23 23:20 by KenshinCui, 2202 阅读, 18 评论, 收藏,  编辑 --UIKit之UITableView ...

  6. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook详解

    代码改变世界 Posts - 69, Articles - 0, Comments - 812 Cnblogs Dashboard Login Home Contact Gallery RSS Ken ...

  7. IOS开发系列—Objective-C之内存管理

    概述 我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上).如果一个对象创建并使用后没 ...

  8. [共享]iOS开发系列--Swift语言

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发系列--Swift语言 概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服 ...

  9. iOS开发系列–音频播放、录音、视频播放、拍照、视频录制

    iOS开发系列–音频播放.录音.视频播放.拍照.视频录制 - KenshinCui - 博客园 代码改变世界 Posts - 69, Articles - 0, Comments - 1004 Cnb ...

  10. iOS开发系列--让你的应用“动”起来--超详细的ios核心动画介绍

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

最新文章

  1. 小学校园里计算机文字,中小学计算机教学论文(共2228字).doc
  2. 云炬Android开发笔记 19参考面包多商城优化“我的”页面
  3. 你真敢ZAO吗?解读换脸AI “细思极恐” 的用户协议
  4. HDU 1506 Largest Rectangle in a Histogram(dp、单调栈)
  5. SAP Analytics Cloud Smart Discovery不支持具有exception aggregation设置的模型
  6. art-template入门(七)之压缩页面
  7. 推荐两本移动开发挺火的书
  8. 28岁成中科院课题组长,短短半年他接连在Science和Nature发论文
  9. 多任务的同步与相互排斥
  10. android4.4安全性,[原创]Android第二代加固(support 4.4-8.1)
  11. 第 4 章 MybatisPlus 条件构造器
  12. 多思计组原理虚拟实验室_多思计算机组成原理虚拟实验室
  13. 【有利可图网】字体设计:英文字体的气质和选用详解(二)
  14. 谷歌浏览器插件离线安装
  15. 安川伺服在使用绝对值编码器时,电池的选用
  16. Java -- JSP面试题及答案
  17. html网页设计小作业(个人主页)
  18. java.lang.NoClassDefFoundError: org/apache/commons/pool2/PooledObjectFactory
  19. word邮件合并发送记录_如何将Word文档作为电子邮件正文发送
  20. 安装MongoDB出现 service MongoDB failed to start,verify that you have sufficient privileges to start

热门文章

  1. 常用三端稳压管型号大全对照表
  2. 2019版PHP自动发卡平台源码
  3. 【目瞪口呆】通信机房内部长这样
  4. 小米路由器的linux命令,小米路由器pro安装mt工具箱
  5. 极光im php,利用php+curl调用极光IM第三方REST API方法经验
  6. 在中国从事什么职业最赚钱_中国最好的十大职业2(转)
  7. 友勤发布2019年Oracle P6软件培训公开课计划
  8. MathorCup数模竞赛,为你的保研之路添砖加瓦~
  9. [渝粤教育] 江苏农牧科技职业学院 兽医文化 参考 资料
  10. 各级期刊分类以及含金量//2021-2-4