因此,我目前正在使用 AlamoFire 向提供图像叠加层的地图服务发出请求。据我了解,所有 AlamoFire的请求都是异步发出的。
现在我牢记这一点,我想到我将从服务器获取数据,然后在调用主线程时添加图像层。我已完成以下操作:
networkManager.fetchParcelOvelays(parameters: params) { image in
let source = MGLImageSource(identifier: "parcels", coordinateQuad: self.getBoundingBox(), image: image)
style.addSource(source)
let parcelLayer = MGLRasterStyleLayer(identifier: "parcel-layer", source: source)
DispatchQueue.main.async {
for layer in style.layers.reversed() {
if !layer.isKind(of: MGLSymbolStyleLayer.self) {
style.insertLayer(parcelLayer, above: layer)
break
}
}
}
}
即使在调用主线程并显示了图层之后,它的加载似乎仍然很慢。我没有正确调用主线程吗?