2011-07-16 180 views
1

我需要iphone上MapKit的幫助! 我使用界面構建器創建了一個簡單的mapview,並將show用戶位置設置爲yes。 但是,「藍點」沒有出現在我部署的itouch上!我需要幫助!iphone當前位置不顯示

此外,任何人都可以建議如何獲取用戶當前位置並繪製到另一個位置的路線? 有沒有像我們的蘋果地圖應用程序使用我們的官方API?繪製路線。

非常感謝!

我的代碼。

viewDidLoad中

- (void)viewDidLoad { 
    locationManager = [[CLLocationManager alloc] init]; 
    [locationManager setDelegate:self]; 
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
    [locationManager startUpdatingLocation]; 
    [super viewDidLoad]; 
} 

的LocationManager:didUpdateToLocation:fromLocation:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 

    [mapView setMapType:MKMapTypeStandard]; 
    mapView.showsUserLocation = YES; 

    MKCoordinateRegion region; 

    CLLocationCoordinate2D location; 
    location.latitude = newLocation.coordinate.latitude; 
    location.longitude = newLocation.coordinate.longitude; 

    region.center = location; 
    region.span.longitudeDelta = 0.02; 
    region.span.latitudeDelta = 0.02; 
    [mapView setRegion:region animated:YES]; 
    [mapView setDelegate:self]; 
} 

回答

1

對於第2點:如果你想展現着地圖的路線(所以你的應用程序就會在後臺)用途:

NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",fromLocation.latitude, fromLocation.longitude,toLocation.latitude,toLocation.longitude]; 
      [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]]; 

如果你想在你的MKMapview中繪製路線,我建議你看看這個https://github.com/kishikawakatsumi/MapKit-Route-Directions

我不知道關於第1點,你有沒有在設置中激活位置服務?

0

你在下面的方法中寫了什麼?它負責在用戶當前位置放置藍點或別針。

注意:我只是複製粘貼我的代碼,所以你需要根據你的需要修改它。總之,如果註釋是用戶的當前位置,則只需返回視圖nil。然後它會在用戶當前位置的中心自動生成藍點。

- (MKAnnotationView *)mapView:(MKMapView *)MapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 
MKPinAnnotationView *view = nil; 

if(annotation !=mapview.userLocation){ 
    view = (MKPinAnnotationView *) 
    [mapview dequeueReusableAnnotationViewWithIdentifier:@"identifier"]; 
    if(nil == view) { 
     view = [[[MKPinAnnotationView alloc] 
       initWithAnnotation:annotation reuseIdentifier:@"identifier"] 
       autorelease];   
    } 
    [view setPinColor:MKPinAnnotationColorPurple]; 
    UIButton *btnViewVenue = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    btnViewVenue.frame = CGRectMake(0, 0, 30, 30); 
    view.rightCalloutAccessoryView=btnViewVenue; 
    view.pinColor = MKPinAnnotationColorGreen; 
    view.enabled = YES; 
    view.canShowCallout = YES; 
    view.multipleTouchEnabled = NO; 
    view.animatesDrop = YES; 
    }  
return view; 
} 

爲您的第二點關於兩個位置之間的繪製路線。所以據我所知,在MapKit中的兩個位置之間顯示路線,直到您手動繪製直線,並且如果您有所有路線的座標,都不是正式的可能。

希望得到這個幫助。