如何从 MKCoordinateRegion 的"my"坐标开始?



我想知道如何使这段代码工作:当我点击一个单元格时,我调用DetailViewController,这是一个地图与旧金山的坐标。但是我的地图只显示"世界"地图,而不指向我设置的区域,你知道我如何从"我的"坐标开始吗?

下面是我的代码:

#import "DetailViewController.h"
@implementation DetailViewController
@synthesize mapView;
- (void) gotoLocation {
    NSLog(@"allo");
    //start off in San Francisco
    MKCoordinateRegion region;
    region.center.latitude = 37.786996;
    region.center.longitude = -122.440100;
    region.span.latitudeDelta = 0.112872;
    region.span.longitudeDelta = 0.109863;
    [self.mapView setRegion:region animated:YES];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    [self gotoLocation];
}
- (void)dealloc {
    [super dealloc];
    [mapView release];
}
- (void)viewDidUnload {
    [super viewDidUnload];
    self.mapView = nil;
}
@end

感谢保罗

- (void)viewDidLoad{
[super viewDidLoad];
// define span for map: how much area will be shown
MKCoordinateSpan span;
span.latitudeDelta = 0.002;
span.longitudeDelta = 0.002;
// define starting point for map
CLLocationCoordinate2D start;
start.latitude = 37.786996;
start.longitude = 0.109863;
// create region, consisting of span and location
MKCoordinateRegion region;
region.span = span;
region.center = start;
// move the map to our location
[self.mapView setRegion:region animated:YES];

}

既然您看到了世界地图,那么地图视图的框架必须是正确的,并且用于设置区域的代码应该可以工作。

setRegion调用不工作的最可能的原因是mapView IBOutlet没有连接到xib中的地图视图控件。在IB中,右键单击文件的所有者并将mapView出口连接到地图视图控件。

你可能还想连接地图视图控件的delegate出口到文件的所有者以及,所以任何委托方法你实现(以后)将被调用。

单独(与您的问题无关),在dealloc中,[super dealloc]应该最后调用。

你的帧需要设置之前,你可以设置区域,通过这个看起来你是使用IB实例化mapview,所以你可能应该把setreregion消息到viewDidAppear:并把它到你的DetailViewController。

-(void)viewDidAppear {
    MKCoordinateRegion region;
    region.center.latitude = 37.786996;
    region.center.longitude = -122.440100;
    region.span.latitudeDelta = 0.112872;
    region.span.longitudeDelta = 0.109863;
    [self.mapView setRegion:region animated:YES];
}

你可以在设置区域之前这样做(可能行不通)

self.mapView.frame = self.view.bounds

相关内容

  • 没有找到相关文章

最新更新