Hi,
IOS SWIFT
I want to query features with attachments.
I have tried to use the sample edit data attachment but not successful.
When I using the identify layer, am able to get the attachment, but I want to achieve through query layers. Below are the code, I have tried.
var featureTable: AGSServiceFeatureTable!
featureTable = AGSServiceFeatureTable(url: URL(string: layoutMapping.offersURL)!)
let featureLayer = AGSFeatureLayer(featureTable: featureTable)
let map = AGSMap()
let mapImageLayer = AGSArcGISTiledLayer(url: URL(string: layoutMapping.arcGISURL)!)
map.operationalLayers.add(mapImageLayer)
map.operationalLayers.add(featureLayer)
self.mapViews.map = map
let layers:[AGSLayer]! = map.operationalLayers as! [AGSLayer]
let featureLayer1:AGSFeatureLayer = layers[1] as! AGSFeatureLayer
let queryParams = AGSQueryParameters()
let query = "1=1"
queryParams.whereClause = query
let table1 = featureLayer1.featureTable as! AGSServiceFeatureTable
table1.queryFeatures(with: queryParams, queryFeatureFields: .loadAll, completion: { (result:AGSFeatureQueryResult?, error:Error?) -> Void in
if error != nil {
let alert = UIAlertController(title: self.layoutMapping.appTitle, message: "Server Connection Failed!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
self.present(alert, animated: true)
}
else if let features = result?.featureEnumerator().allObjects as? [AGSArcGISFeature] , features.count > 0 {
for feature in features
{
var imageList = [UIImage]()
guard let arcgisFeature = feature as? AGSArcGISFeature else {
print("test")
}
feature.fetchAttachments { (attachments:[AGSAttachment]?, error:Error?) -> Void in
if let error = error {
print(error)
}
else if let attachments = attachments {
print(attachments.count)
let attachment = attachments[0]
attachment.fetchData { (data:Data?, error:Error?) -> Void in
if let error = error {
print(error)
}
else if let data = data {
let image = UIImage(data: data)!
//cell.imageView?.image = image
imageList.append(image)
}
}
}
}
}
}
})
Please provide your answer.
Thanks