2011-11-17 65 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