2011-09-02 98 views
0

我有一個小問題,我不知道爲什麼會發生。的MKMapView上沒有顯示設備

我的地圖視圖在模擬器中效果不錯,但在真實設備上,我只能看到灰色區域和「谷歌」徽標上的針腳。這就像圖像無法加載,它看起來像當你放大,你等待視圖畫在廣場周圍。

這裏是我的代碼,我希望得到任何幫助

#import "Maps.h" 
#import "RootViewController.h" 


@implementation AddressAnnotation 

@synthesize coordinate; 
-(NSString *) subtitle{ 
    return @"327 Anzac Parade, Wodonga, Victoria, Australia"; 
} 
-(NSString *) title{ 
    return @"Blazing Stump"; 
} 
-(id)initWithCoordinate:(CLLocationCoordinate2D) c{ 
    coordinate = c; 
    NSLog(@"%f,%f",c.latitude, c.longitude); 
    return self; 
} 

@end 


@implementation Maps 

-(CLLocationCoordinate2D) addressLocation{ 

    NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://maps.google.com/maps/geo?q=327%20Anzac%20Parade,%20Wodonga,%20Victoria,%20Australia&output=csv&key=ABQIAAAAZs2zFXiuKBFeLpPgSfgMjBTHxw17-t8q3X3AgrE9NufATyE8MRRmwlyLMPtOSzliJQntEtaZ7T-Rww"] 
                 encoding:NSUTF8StringEncoding error:nil]; 
    NSArray *listItems = [locationString componentsSeparatedByString:@","]; 

    double latitude = -36.139226; 
    double longitude = 146.911454; 
    if ([listItems count] >=4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]){ 
     latitude = [[listItems objectAtIndex:2] doubleValue]; 
     longitude = [[listItems objectAtIndex:3] doubleValue]; 
    }else { 
     //some error 
    } 
    CLLocationCoordinate2D location; 
    location.latitude = latitude; 
    location.longitude = longitude; 
    return location; 

} 
-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{ 
    MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"]; 
    annView.pinColor = MKPinAnnotationColorGreen; 
    annView.animatesDrop = TRUE; 
    annView.canShowCallout = YES; 
    annView.calloutOffset = CGPointMake(-5, 5); 
    return annView; 
} 

- (void)viewDidLoad { 
    MKCoordinateRegion region; 
    MKCoordinateSpan span; 
    span.latitudeDelta=0.2; 
    span.longitudeDelta=0.2; 

    CLLocationCoordinate2D location = [self addressLocation]; 
    region.span=span; 
    region.center=location; 

    if(addAnnotation != nil) { 
     [mapView removeAnnotation:addAnnotation]; 
     [addAnnotation release]; 
     addAnnotation = nil; 
    } 

    addAnnotation = [[AddressAnnotation alloc] initWithCoordinate:location]; 
    [mapView addAnnotation:addAnnotation]; 

    [mapView setRegion:region animated:TRUE]; 
    [mapView regionThatFits:region]; 
    //[mapView selectAnnotation:mLodgeAnnotation animated:YES]; 
    [super viewDidLoad]; 
} 
- (void)dealloc { 
    [super dealloc]; 
    [viewController release]; 

} 
+0

你確定你的測試設備連接到互聯網? – gcamp

+0

我試過只用一個筆尖,兩個文件根本沒有代碼。在nib中映射視圖,在.h文件中'#import '。它沒有顯示設備上的景觀 – Spire

+0

是的,我敢肯定 – Spire

回答

0

你確信地圖delgate已定?確保你將delagate添加到標題並在視圖上加載mapkit.delagte = self;

+0

我不認爲委託是這裏的問題... – Robin

+0

它不是委託......地圖視圖正在顯示,但繪圖沒有出現。這就像設備沒有互聯網:S – Spire

相關問題