ios - 如何显示或隐藏 AGSArcGISMapImageLayer 子图层

标签 ios swift arcgis-runtime

我刚刚将项目从 arcgis Runtime 10.2 升级到 100.2.1,我能够运行 AGSFeature 图层,但 AGSArcGISMapImageLayer 出现问题

我只是加载包含子图层的AGSArcGISMapImageLayer图层并像这样获取它们的数据

let mapServiceInfo = (dynamicMapServiceLayer as? AGSArcGISMapImageLayer).mapServiceInfo
  if let layerInfos = mapServiceInfo?.layerInfos {
     for layerInfo in layerInfos {
       //get the sublayer data
     }
}

现在我只是根据用户要求显示和隐藏图层

为此我检查了此 arcgis 链接:- link to show hide the image layer

但是,在使用上述过程获取上述子层数据时,它给了我 10 个子层数据

但是根据我使用该方法时的链接

dynamicMapServiceLayer.mapImageSublayers.count

然后它只返回两个对象或子层 因此我无法实现显示隐藏功能

那么在我的案例中我应该如何使用上述链接方法?或者还有其他方法可以做到这一点吗?

最佳答案

通过搜索 API,我找到了隐藏或显示动态 map 图层的解决方案(AGSArcGISMapImageLayer)

**layersHidden** is an array which contain the url of layers which I want to hide from map

let mapServiceInfo = dynamicMapServiceLayer?.mapServiceInfo
let layerInfos = mapServiceInfo?.layerInfos

for layerInfo in layerInfos {
     if layerInfo.sublayerIDs.count == 0 {
         // Get the url for the layer.
         let layerUrl = "\(mapServiceInfo?.url?.absoluteString ?? "")/\(UInt(layerInfo.id))"
         // add the name of layers which we want to hide from map in visibleLayers array
         if layersHidden.contains(layerUrl) {
              visibleLayers.append(layerInfo.name)
         }
     }
}

像这样的隐藏层

for i in 0...((dynamicMapServiceLayer?.mapImageSublayers.count)!-1) { 让层=dynamicMapServiceLayer?.mapImageSublayers [i]为! AGSArcGISMapImageSublayer

for subLayer in layer.subLayerContents {
    if visibleLayers.contains(subLayer.name) {
         subLayer.isVisible = false
    }
    else {
      subLayer.isVisible = true
    }
   }
 } 

关于ios - 如何显示或隐藏 AGSArcGISMapImageLayer 子图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50693909/

相关文章:

java - ArcGIS Java ServiceFeatureTable 查询始终仅返回 1 个要素

ios - 使用 Swift 为所有 UIViewControllers 实现功能

ios - 即使发送(消息)成功,通知也未到达 iOS 设备

ios - 从另一个类 Swift 3 访问 webView

ios - 堆栈溢出 : Thread 1: EXC_BAD_ACCESS (code=2, 地址=0x16d09aa00)

ios - 通过设置某种标志隐藏 imageView 和 Label

ios - ArcGIS运行时SDK : Mapview crash on iOS

java - 有没有什么方法可以获取 ENC 图层的所有功能并在 java 或 .net ArcGIS SDK 中切换它们的可见性?

ios - 将 JSON 数据的 NSString 转换为 NSArray

ios - UIActionsheet 委托(delegate) clickedButtonAtIndex 永远不会被调用