ArcGIS for iOS如何加载离线地图包

一份耕耘一份收获,相信我们可以做得越来越好,眼界越来越高!在上一篇关于开发ArcGIS for iOS如何搭建环境之后,接下来做的事情是具体的来加载地图包到我们的设备中,这里我采用的是使用离线地图包,关于如何制作地图包这一块,可以参看http://resources.arcgis.com/en/help/main/10.2/index.html#//00660000045q000000 ,不过这一块最好请专业人士!微笑 好了,言归正传,本篇博客主要介绍如何将已经生成好了的离线地图文件(.tpk--basemap;.geodatabase)加载到项目中运行起来的其中一种方法。

主要分成两块:

1、如何加载.tpk文件

2、如何加载.geodatabase文件

这两个文件都是将之放入.bundle文件中,当然也有一种方法是不放在bundle文件中,但是试验了一下工程没能成功的找到文件,故此,这里我们采用这样的方式。

1、如何加载切片图.tpk文件以显示

把文件包放在一个bundle 文件中,之后将生成的这个包拖放倒工程中,然后再在代码中可以提供完整的包路径,具体如下所示:

代码

<pre name="code" class="objc">NSString* path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyBundle.bundle/WildlifeHabitat.tpk"];
AGSGDBGeodatabase *gdb = [AGSGDBGeodatabase alloc]initWithPath:path error:(NSError *error);

 

2、加载.geodatabase文件(假定该文件的文件名为:WildlifeHabitat.geodatabase)

同样和上边加载.geodatabase的方法类似,补充一点的是,该处说明的.geodatabase文件是通过ArcGIS for Desktop生成的。具体的步骤为:

1>使用相应的类来打开geodatabase,该类有一些方法可以允许在geodatabase文件中列出特征列表和属性值

AGSLocalTiledLayer* layer = [AGSLocalTiledLayer localTiledLayerWithPath:path];[self.mapView addMapLayer:layer withName:@"base Tiled Layer"];

2>为了从一个geodatabase文件来创建特征层(feature layer),首先,使用geodatabase来接收一个特征列表;其次,从一个特征表创建一个特征层

@property (strong,nonatomic) AGSGDBFeatureTable *localFeatureTable;
@property (strong,nonatomic) AGSFeatureTableLayer *localFeatureTableLayer;

self.localFeatureTable = [[geodatabase featureTables] objectAtIndex:0];
<pre name="code" class="objc"><span style="font-family: Arial, Helvetica, sans-serif;">self.</span><span style="font-family: Arial, Helvetica, sans-serif;">localFeatureTableLayer = [[AGSFeatureTableLayer alloc] initWithFeatureTable:localFeatureTable];</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc">[self.mapView addMapLayer:self.localFeatureTableLayer withName:@"feature Layer"];

 
 

完成了以上步骤就实现了将两个离线地图文件给加载到项目文件中





AGSLocalTiledLayer* layer = [AGSLocalTiledLayer localTiledLayerWithPath:path];
[self.mapView addMapLayer:layer withName:@"base Tiled Layer"];
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值