I am adding callout to my Map and it works fine.
I create a pushpin:
AGSPictureMarkerSymbol *pushpin = [AGSPictureMarkerSymbol pictureMarkerSymbolWithImageNamed:@"BluePushpin.png"]; pushpin.offset = CGPointMake(9, 16); pushpin.leaderPoint = CGPointMake(-9, 11);
Then I add the callout pushpin to may callout layer
AGSPoint *theTask = [AGSPoint pointWithX:latitude y:longitude doubleValue] spatialReference:self.mapView.spatialReference]; AGSGraphic graphic = [AGSGraphic graphicWithGeometry:theTask symbol:pushpin attributes:singleDataDic]; [self.taskInfoLayer addGraphic:graphic];
Everything works fine, when I tap on a pin point, it actually shows something.
The problem happened after I added some other layer:
NSURL *featureBldgURL = [NSURL URLWithString:LAYER_BLDG_URL]; AGSFeatureLayer *bldgLayer = [AGSFeatureLayer featureServiceLayerWithURL:featureBldgURL mode:AGSFeatureLayerModeOnDemand]; [self.mapView addMapLayer:bldgLayer withName:LAYER_BLDG_NAME];
Even when I tap on a place where I did not put a pushpin, it still shows up an empty callout dialog:
I found that the AGSFeatureLayer has implement AGSLayerCalloutDelegate, maybe it's the reason to show an empty callout when user tap on that AGSFeatureLayer?
How can I disable the callout for AGSFeatureLayer? Or, any other solution for this problem?