Hmm. This is odd. I am unable to reproduce this in my testing using openweatherdata.org tiles…
Which version of Runtime are you using?
In case anyone's interested, here's the code I used to try to test:
import UIKit
import ArcGIS
let apiKey = "GET ONE FROM OPENWEATHERDATA.ORG - FREE ACCOUNT REQUIRED"
let layerNames = ["clouds_new", "temp_new", "precipitation_new"]
class ViewController: UIViewController {
@IBOutlet weak var mapView: AGSMapView!
var tiledLayers: [AGSWebTiledLayer]? = nil
override func viewDidLoad() {
super.viewDidLoad()
let map = AGSMap(basemap: AGSBasemap.streetsVector())
mapView.map = map
let layers = layerNames.map({ layerName -> AGSWebTiledLayer in
let urlTemplate = "https://tile.openweathermap.org/map/\(layerName)/{level}/{col}/{row}.png?appid=\(apiKey)"
let layer = AGSWebTiledLayer(urlTemplate: urlTemplate)
layer.opacity = 1.0
layer.isVisible = false
return layer
})
map.operationalLayers.addObjects(from: layers)
tiledLayers = layers
tiledLayers?.first?.isVisible = true
mapView.touchDelegate = self
}
}
extension ViewController: AGSGeoViewTouchDelegate {
func geoView(_ geoView: AGSGeoView, didTapAtScreenPoint screenPoint: CGPoint, mapPoint: AGSPoint) {
guard let layers = mapView.map?.operationalLayers as? [AGSLayer] else { fatalError("Layers are not layers!") }
guard let firstLayer = layers.first else { return }
let newVisible = !firstLayer.isVisible
layers.forEach {
$0.isVisible = newVisible
}
}
}