ArcGIS API For IOS 實現圖層顯示控制

來源:互聯網
上載者:User

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是否隱藏來進行圖層顯示的控制。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.