最近、ios (1.4) 用の最新の google maps sdk に更新しました。クラスター マーカーとして使用していたカスタム マーカーがあり、そのマーカー内にマーカーの数を表示しました。
- (UIImage *)icon {
UIImage *img = [UIImage imageNamed:DEFAULT_ICON];
NSString *text = [NSString stringWithFormat:@"%d",[self.markersInCluster count]];
UIFont *font = [UIFont boldSystemFontOfSize:14];
CGSize textSize = [text sizeWithFont:font];
CGPoint point = CGPointMake((img.size.width - textSize.width) /2, (img.size.height - textSize.height) /2);
UIGraphicsBeginImageContext(img.size);
[img drawInRect:CGRectMake(0,0,img.size.width,img.size.height)];
CGRect rect = CGRectMake(point.x, point.y, img.size.width, img.size.height);
[[UIColor whiteColor] set];
[text drawInRect:CGRectIntegral(rect) withFont:font];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
これはアップグレードまで正常に機能していましたが、GMSMarker init でこのアイコン プロパティが変更された場合にのみ画像をレンダリングするようになりました。それ以外の場合は、デフォルトのマーカーが表示されます。