如何在同一个地图视图中为注释添加不同的图像

时间:2012-02-01 10:37:46

标签: iphone annotations mkmapview mkannotation mapkit

我有一个带有多个注释的MapView。但是我需要根据JSON值将不同的图像放到注释中。

enter image description here

这就是我想要做的......需要根据JSON值为引脚添加不同的图像。

有没有人知道如何做到这一点?请帮助,这将非常有帮助。

由于

2 个答案:

答案 0 :(得分:6)

您可以使用委托方法:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation

根据您的JSON值,您可以设置图像:  以下是我的示例代码:

UIImage * flagImage = nil;

if(Your JSON Values)
flagImage = [UIImage imageNamed:@"darkgreendot.png"];
else if(....)
flagImage = [UIImage imageNamed:@"orangedot.png"];
else
flagImage = [UIImage imageNamed:@"bluedot.png"];

CGRect resizeRect;  
        resizeRect.size = flagImage.size;   
        resizeRect.origin = (CGPoint){0.0f, 0.0f};
        UIGraphicsBeginImageContext(resizeRect.size);
        [flagImage drawInRect:resizeRect];
        UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();    
        annotationView.image = resizedImage;

答案 1 :(得分:-2)

中的

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation

委托将图像设置为注释视图

annotationView.image = [UIImage imageNamed:@"crazyPin.png"];