1
AGSGraphic *graphic;
AGSPoint *graphicPoint;
NSMutableDictionary *graphicAttributes;
AGSPictureMarkerSymbol *graphicSymbol;


   //Graphic for demonstrating custom callout with buttons
    graphicPoint = [AGSPoint pointWithX:sample.latitude y:sample.longitude spatialReference:self.mapView.spatialReference];

    graphicAttributes=[[NSMutableDictionary alloc]initWithCapacity:3];
    [graphicAttributes setObject:[NSString stringWithFormat:@"%d",sample.sampleId] forKey:@"SampleID"];
    [graphicAttributes setObject:mapData.SurveyData forKey:@"SurveyData" ];

    NSLog(@"%@",[graphicAttributes objectForKey:@"SurveyData"]);
    NSLog(@"%@", [graphicAttributes allKeys]);

    graphicSymbol = [AGSPictureMarkerSymbol pictureMarkerSymbolWithImageNamed:@"MapPin_Blue.png"];
    graphic = [AGSGraphic graphicWithGeometry:graphicPoint symbol:graphicSymbol attributes:graphicAttributes infoTemplateDelegate:self];

    NSLog(@"%@", [[graphic allAttributes] allKeys]);

    [self.graphicsLayer addGraphic:graphic];

日志单独提供键 Allkeys SampleID,没有得到SurveyData,which is an NSArray! 为什么会这样?

4

1 回答 1

0

貌似AGSGraphic的属性只支持ArcGIS 10.1.1的NSNull、NSString、NSDate和NSNumber。可以参考文档。

我的解决方案是通过使用您需要的任何属性扩展 AGSGraphic 来构建我自己的 AGSGraphic。如下所示:

@interface CustomAGSGraphic : AGSGraphic

@property(nonatomic,retain) NSMutableDictionary *attrDictionary;

@end

它就像一个魅力。希望它可以帮助。

于 2014-01-17T07:20:47.783 回答