2011-11-17 62 views
2

MKMapView顯示mapView中心的針腳,我想將針腳位置放在中心上方。我怎麼做?如何在MKMapView中設置PlaceMark位置?

這裏是我的代碼

- (void) location 
{ 
    MKCoordinateRegion region; 
    MKCoordinateSpan span; 
    span.latitudeDelta = 0.1162; 
    span.longitudeDelta = 0.1160; 

    CLLocationCoordinate2D location; 
    location.latitude = 65.494806; 
    location.longitude = -23.577569; 
    region.span=span; 
    region.center=location; 

    PlaceMark *add_Annotation = [[[PlaceMark alloc] initWithCoordinate:location] autorelease]; 
    [add_Annotation setTitle:@"myTitle"]; 
    [add_Annotation setSubTitle:@"myAddress"]; 
    [mapView addAnnotation:add_Annotation]; 

    [mapView setRegion:region animated:TRUE]; 
    [mapView regionThatFits:region]; 
} 

回答

2

如果你想保持銷在這些座標,但在地圖中心,小於銷低,使得銷高於中心一點,偏移的centerregion由緯度跨度的一小部分組成。

取而代之的是:

region.center=location; 

做到這一點:

region.center = CLLocationCoordinate2DMake(
        location.latitude - (span.latitudeDelta/5.0), 
        location.longitude); 

增大/減小除數,以減少/增加所抵消。


此外,不需要行[mapView regionThatFits:region]; - 您可以刪除它。
首先,setRegion已經做過regionThatFits本身,第二,regionThatFits返回一個值,但代碼沒有處理任何返回值。

+0

我明白了!但是我的代碼出錯了。錯誤消息:體系結構i386的未定義符號: 「_CLLocationCoordinate2DMake」,引用來自: – HardCode

+2

將Core Location框架添加到項目中。 – Anna

+0

謝謝,工作正常! – HardCode