Hi, newcomer to arcGIS here. I work a university, and they have an entire campus maps division that has used arcGIS. Until now, they've only used it for web, but my colleague (android dev) and I (iOS dev) are working out way through the docs to get some of the same functionality working on a mobile platform.
I was wondering whether I'm doing this incorrectly?
func geoView(_ geoView: AGSGeoView, didTapAtScreenPoint screenPoint: CGPoint, mapPoint: AGSPoint) {
self.mapView.identifyLayers(atScreenPoint: screenPoint, tolerance: 10.0, returnPopupsOnly: true) { (results, error) in
guard let results = results else { return }
if let result = results.first,
let featureLayer = result.layerContent as? AGSFeatureLayer,
let geoElement = result.geoElements.first,
let name = geoElement.attribut
func geoView(_ geoView: AGSGeoView, didTapAtScreenPoint screenPoint: CGPoint, mapPoint: AGSPoint) {
self.mapView.identifyLayers(atScreenPoint: screenPoint, tolerance: 10.0, returnPopupsOnly: true) { (results, error) in
guard let results = results else { return }
if let result = results.first,
let featureLayer = result.layerContent as? AGSFeatureLayer,
let geoElement = result.geoElements.first,
let name = geoElement.attributes["Name"] as? String,
let desc = geoElement.attributes["Description"] as? String,
let feature = geoElement as? AGSFeature {
featureLayer.select(feature)
}
}
No matter where or which layer I tap on the map, results is always returned as an empty array. I know that it's not an issue with the layers, because my friend has gotten it to work just fine on his kotlin equivalent. His code is similar, except that I think they handle the response from identifyLayersAsync with identityFuture.get()
@IBOutlet weak var mapView: AGSMapView!
var layer: AGSFeatureLayer {
return AGSFeatureLayer(featureTable: AGSServiceFeatureTable(url: URL_))
}
override func viewDidLoad() {
super.viewDidLoad()
setupMap()
}
private func setupMap() {
let map = AGSMap(basemapType: .lightGrayCanvasVector, latitude: latitude, longitude: longitude, levelOfDetail: 10)
mapView.map = map
mapView.touchDelegate = self
mapView.callout.delegate = self
map.operationalLayers.add(self.layer)
}
I've looked all over for help, but I haven't found one that related so I hope this was the right thing to do. Thank you