Как показать или скрыть подслои AGSArcGISMapImageLayer - PullRequest
0 голосов
/ 05 июня 2018

Я только что обновил свой проект с 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 : - ссылка, чтобы показать скрытие слоя изображения

Но при получении данных выше подслоев с использованием описанной выше процедуры он дает мне10 подслоев данных

но по ссылке, когда я использую метод

dynamicMapServiceLayer.mapImageSublayers.count

, тогда возвращает только два объекта или подслоя Из-за этогоМне не удалось реализовать функцию show hide

Итак, как мне использовать вышеупомянутый подход к ссылкам в моем случае?или есть другой способ сделать это?

1 Ответ

0 голосов
/ 07 июня 2018

При поиске в API я нашел решение, чтобы скрыть или показать слои dynamicMap ( 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)
         }
     }
}

Такие скрытые слои

для меняв 0 ... ((dynamicMapServiceLayer? .mapImageSublayers.count)! - 1) {let layer = dynamicMapServiceLayer? .mapImageSublayers [i] как!AGSArcGISMapImageSublayer

for subLayer in layer.subLayerContents {
    if visibleLayers.contains(subLayer.name) {
         subLayer.isVisible = false
    }
    else {
      subLayer.isVisible = true
    }
   }
 } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...