2010-11-02 74 views
0

簡而言之,我創建的應用程序旨在將酒吧和餐館作爲城市地圖上的註釋顯示,但我也希望該應用程序能夠顯示用戶的當前位置。我需要知道如何輕鬆添加多個自定義註釋,但也顯示我的當前位置。任何人都可以幫忙嗎?MapKit iPhone開發;當前位置和註釋

這裏是我ViewController.m

- (void)viewDidLoad { 
[super viewDidLoad]; 

[mapView setMapType:MKMapTypeStandard]; 
[mapView setZoomEnabled:YES]; 
[mapView setScrollEnabled:YES]; 
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
region.center.latitude = 53.793853; 
region.center.longitude = -1.752442; 
region.span.longitudeDelta = 0.01f; 
region.span.latitudeDelta = 0.01f; 
[mapView setRegion:region animated:YES]; 

[mapView setDelegate:self]; 

DisplayMap *ann = [[DisplayMap alloc] init]; 
ann.title = @"Pashas"; 
ann.subtitle = @"Leeds Road"; 
ann.coordinate = region.center; 
[mapView addAnnotation:ann]; 
} 

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation: 

    (id <MKAnnotation>)annotation { 
MKPinAnnotationView *pinView = nil; 
if(annotation != mapView.userLocation) 
{static NSString *defaultPinID = @"com.invasivecode.pin"; pinView = (MKPinAnnotationView)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];if (pinView == nil) pinView = [[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease]; 

    pinView.pinColor = MKPinAnnotationColorRed; 
    pinView.canShowCallout = YES; 
    pinView.animatesDrop = YES; 
    } 
else { 
    [mapView.userLocation setTitle:@"I am here"]; 
} 

回報pinView的一部分;}

回答

1

你需要告訴地圖視圖來顯示用戶的位置(這不是在默認情況下)。它添加到viewDidLoad中:

[mapView setShowsUserLocation:YES]; 

注意,在模擬器中,「用戶位置」始終是加州庫柏蒂諾市,所以它取決於地圖的當前中心和縮放,你可能看不到。

1

用於顯示currentLocation使用

mapviewObject.showUserLocation = YES; 

for(int i=0;i<10;i++) 
{ 

MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
region.center.latitude = 53.793853; 
region.center.longitude = -1.752442; 
region.span.longitudeDelta = 0.01f; 
region.span.latitudeDelta = 0.01f; 
[mapView setRegion:region animated:YES]; 

[mapView setDelegate:self]; 

DisplayMap *ann = [[DisplayMap alloc] init]; 
ann.title = @"Pashas"; 
ann.subtitle = @"Leeds Road"; 
ann.coordinate = region.center; 
[mapView addAnnotation:ann]; 
}