显示当前位置,以及iPhone中的另一个位置

时间:2010-05-07 08:54:40

标签: iphone cocoa-touch mapkit

无论何时加载mapview,它都会自动显示当前用户位置。在我的情况下,我在地图上显示另一个位置,这样地图加载当前位置并缩放到我给出的位置..但是,当前位置点没有显示(蓝色的自动来...)。 我给了mapView.showCurrentLocation = TRUE;但它没有表现出来。 所以任何一个人都可以告诉它的工作方式,它应该说出当前的位置标记然后缩放到我给出的点。 谢谢

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    static NSString *defaultPinID = @"CameraAnnotation";
    MKPinAnnotationView *retval = nil;
    static int postag=1;

    (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if(annotation=MapView.userLocation)
    {
        return nil;
    }
    // If we have to, create a new view
    else    if (retval == nil)
    {
        retval = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

        UIButton *myDetailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        myDetailButton.frame = CGRectMake(0, 0, 50, 23);
        myDetailButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
        myDetailButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
        myDetailButton.tag=postag;
        postag++;
        [myDetailButton addTarget:self action:@selector(showLinks:) forControlEvents:UIControlEventTouchUpInside];
        retval.rightCalloutAccessoryView = myDetailButton;
        [retval setPinColor:MKPinAnnotationColorRed];
        retval.animatesDrop = YES;
        retval.canShowCallout = YES;
    }

    return retval;
}

2 个答案:

答案 0 :(得分:2)

在模拟器中,默认的当前位置是Cupertino。这是您所看到的,它将在设备中正常工作。

你应该使用CLLocationManager获取当前位置。

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
{
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self; // Tells the location manager to send updates to this object
[locationManager startUpdatingLocation];
}

更改引脚颜色

MKPinAnnotationView   *pin=[[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pin"]autorelease];

[pin setPinColor:MKPinAnnotationColorRed];

一切顺利。

答案 1 :(得分:1)

看一下这个问题的answer来设置MkMapView缩放级别以包含附加到它的所有MKAnnotations