MKMapView
を使用しており、注釈ピンの数をマップに追加しました。すべての注釈は別の国に属しているため、注釈をすべてユーザーに表示することはできません。MKMapViewですべての注釈がユーザーに表示されない
注釈の緯度と経度を下げてみてください。
First annotation Latitude:
23.029690
First annotation Longitude:
72.527359
Second annotation Latitude:
34.210855
Second annotation Longitude:
-118.622636
のMapViewに注釈を追加するためのコード。
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake([[dicObjects valueForKey:K_Latitude] doubleValue], [[dicObjects valueForKey:K_Longitude] doubleValue]);
MyCustomAnnotation *myCustomAnnotation = [[MyCustomAnnotation alloc]initWithTitle:[NSString stringWithFormat:@"%@ ",[dicObjects valueForKey:K_Title]] Subtitle:[NSString stringWithFormat:@"%@",[dicObjects valueForKey:K_SubTitle]] andDescritpion:[NSString stringWithFormat:@"%@",[dicObjects valueForKey:K_TitelDes]] withLocation:coordinate andImageName:[dicObjects valueForKey:K_Rating] andTagValue:intTempCounter];
[mapViewPledgeList addAnnotation:myCustomAnnotation];
MyCustomAnnotation.h
@interface MyCustomAnnotation : NSObject<MKAnnotation>
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (copy, nonatomic) NSString *title;
@property (copy, nonatomic) NSString *subTitle;
@property (copy, nonatomic) NSString *titleDescritpion;
@property (copy, nonatomic) NSString *strImageName;
@property int intTagValue;
- (id)initWithTitle:(NSString *)newTitle Subtitle:(NSString *)subTitle andDescritpion:(NSString *)titleDescritpion withLocation:(CLLocationCoordinate2D)location andTagValue:(int) intTag;
- (MKAnnotationView *)annotationView;
- (id)initWithTitle:(NSString *)newTitle Subtitle:(NSString *)subTitle andDescritpion:(NSString *)titleDescritpion withLocation:(CLLocationCoordinate2D)location andImageName:(NSString*) strImageName andTagValue:(int) intTag;
@end
MyCustomAnnotation.m
#import "MyCustomAnnotation.h"
@implementation MyCustomAnnotation
#pragma mark - Custom Annotation View Setup
- (MKAnnotationView *)annotationView{
MKAnnotationView *annotationView = [[MKAnnotationView alloc]initWithAnnotation:self reuseIdentifier:K_ID_CUSTOM_ANNOTATION];
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
annotationView.image = kImage(_strImageName);
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
button.frame = CGRectMake(0, 0, 23, 23);
button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
[button setImage:[[UIImage imageNamed:@"NextArrow"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
annotationView.rightCalloutAccessoryView = button;
return annotationView;
}
- (id)initWithTitle:(NSString *)newTitle Subtitle:(NSString *)subTitle andDescritpion:(NSString *)titleDescritpion withLocation:(CLLocationCoordinate2D)location andImageName:(NSString*) strImageName andTagValue:(int) intTag{
self = [super init];
if(self){
_title = newTitle;
_subTitle = subTitle;
_titleDescritpion = titleDescritpion;
_coordinate = location;
if ([strImageName intValue] == 1) {
_strImageName = @"MapViewPinRed";
}else if([strImageName intValue] == 2){
_strImageName = @"MapViewPinOrange";
}else if ([strImageName intValue] == 3){
_strImageName = @"MapViewPinYellow";
}else if ([strImageName intValue] == 4){
_strImageName = @"MapViewPinLightGreen";
}else{
_strImageName = @"MapViewPinGreen";
}
}
return self;
}
@end
私は解決策の下にしようとしたが、それは動作しませんでした。 showAnnotations
[mapViewPledgeList showAnnotations:mapViewPledgeList.annotations animated:YES];
発行使用)MKMapRectUnion
MKMapRect zoomRect = MKMapRectNull;
for (id <MKAnnotation> annotation in mapViewPledgeList.annotations)
{
MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);
zoomRect = MKMapRectUnion(zoomRect, pointRect);
}
[mapViewPledgeList setVisibleMapRect:zoomRect animated:YES];
2を使用
1): -ので、すべての注釈がユーザに見える保つ任意の解決策を示唆しています。
アノテーションはすでにマップに配置されていますが、すべてのアノテーションは同時に表示されません。 – iMHitesh
私は@Hiteshsurani –
質問を誤解あなたは注釈を追加するようにコードを表示することができます – vivek