Вы можете использовать метод делегата:
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id) аннотация
и в соответствии со своими значениями 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;