iOS4 MKMapKit -地图不放大时,超过一个引脚



当然这很简单,因为我只是从地图开始。我已经有了一个显示一个位置的地图,但是当我添加了第二个注释后,地图会一直缩小,而不是显示我的位置。当我放大时,引脚在那里,所以我知道那个位是工作的。

代码片段:

- (void)viewDidLoad
{
...
...
...
// Set coordinates for our position
CLLocationCoordinate2D location;
location.latitude = [self.lat doubleValue];
location.longitude = [self.lon doubleValue];
// Add the annotation to our map view
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] 
                                    initWithTitle:self.placename                                        
                                    andSubtitle:self.subtitle
                                    andCoordinate:location];
[self.mapView addAnnotation:newAnnotation];
[newAnnotation release];
// Set coordinates for our second position
CLLocationCoordinate2D amenitylocation;
amenitylocation.latitude = self.latitude;
amenitylocation.longitude = self.longitude;
// Add the annotation to our map view
MapViewAnnotation *amenityAnnotation = [[MapViewAnnotation alloc] 
                                    initWithTitle:self.callouttitle                                        
                                    andSubtitle:self.calloutsubtitle
                                    andCoordinate:amenitylocation];
[self.mapView addAnnotation:amenityAnnotation];
[amenityAnnotation release];
[super viewDidLoad];
}

#pragma mark - MKMapView Delegates
// When a map annotation point is added, zoom to it (1500 range)
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *annotationView = [views objectAtIndex:0];
id <MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 1500, 1500);
[mv setRegion:region animated:YES];
[mv selectAnnotation:mp animated:YES];
}
- (MKAnnotationView *)mapView:(MKMapView *)mv viewForAnnotation:(id<MKAnnotation>)annotation
{
if(mapView.userLocation==annotation)
{
    return nil;
}
NSString *identifier = @"IDENTIFIER";
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if(annotationView==nil)
{
    annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier]autorelease];
    annotationView.pinColor=MKPinAnnotationColorPurple;
    annotationView.canShowCallout=YES;
}
return annotationView;
}

请指教。

此外,我认为我必须使自定义标注,如果我想要多个出现在地图上在同一时间对吗?

对不起,找到了答案-我没有MKMapView委托链接到文件的所有者在IB,虽然我有在我的头文件。链接起来就行了

相关内容

最新更新