【iOS】ArcGIS API For iOS 实现图层显示控制

ArcGIS API For IOS 实现图层显示控制分两个粒度,分别是服务的显示控制,然后是图层的显示控制。

1)服务的显示控制

服务的显示控制用AGSMapView Class实现。每个UIViewController界面如果加载地图都会有一个AGSMapView对象实例,那么设置这个AGSMapView 实例的hidden=TRUE;
比如:
AGSTiledMapServiceLayer *tiledLayer = [[AGSTiledMapServiceLayer alloc] initWithURL:[NSURL URLWithString:kTiledEMapZoneMapServiceURL ]];
UIView *emapzoneTiledMap = [self.mapView addMapLayer:tiledLayer withName: @"Tiled Layer"];
emapzoneTiledMap.hidden = NO;

2)地图上服务的显示控制
单个地图服务的显示控制用AGSDynamicLayerView或AGSTiledLayerView实现,比如:
NSDictionary *dict=self.mapView.mapLayerViews;
NSArray *arr=[dict allValues];
for (int i = 0; i < [arr count]; i++) {
  AGSDynamicLayerView *mapLayerView=[arr objectAtIndex:i];
   if (显示控制条件) {
   mapLayerView.hidden=TRUE;
   }

}
3)单个服务内有多个图层的显示控制
NSURL* url = [NSURL URLWithString: @" http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer "];AGSDynamicMapServiceLayer* layer = [AGSDynamicMapServiceLayer dynamicMapServiceLayerWithURL: url];
// only display ‘ushigh’ (id=0) and ‘states’ (id=1) layer 
layer.visibleLayers = [NSArray arrayWithObjects:[NSNumber numberWithInt:0],[NSNumber numberWithInt:1], nil];
通过设置visibleLayers 来确定图层是否可见。

4) 小结

对象模型图如下:

实际上AGSMapView 、AGSLayerView对象都是UIView的子类,所以最终控制的是UIView是否可见。这样通过设置UIView是否隐藏来进行图层显示的控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值