我只是在看mapKit并决定制作一个快速按钮来显示我当前的位置,但是当我按下按钮时,我的纬度/经度始终显示为[0.000000] [0.000000]。
mapView已加载,因为我可以在按下按钮之前在模拟器上看到地图。以前我通过使用coreLocation.framework并使用CLLocationManager并以这种方式询问设备位置来完成此操作。我只是好奇为什么这种方式不能正常工作,我会通过CLLocationManager做得更好吗?
-(IBAction)findMePressed {
MKUserLocation *myLocation = [myMapView userLocation];
CLLocationCoordinate2D coord = [[myLocation location] coordinate];
[myMapView setCenterCoordinate:coord animated:YES];
NSLog(@"findMePressed ...[%f][%f]", coord.latitude, coord.longitude);
}
编辑:已添加......
-(IBAction)findMePressed {
MKUserLocation *myLocation = [myMapView userLocation];
CLLocationCoordinate2D coord = [[myLocation location] coordinate];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 350, 350);
[myMapView setRegion:region animated:YES];
}
-(void)viewDidLoad {
[super viewDidLoad];
[myMapView setShowsUserLocation:YES];
}
加里。
答案 0 :(得分:1)
userLocation在地图上不可见(请参阅userLocationVisible属性)或设置myMapView属性时出现问题,并且它是nil(即未在界面构建器中连接)
答案 1 :(得分:1)
[...]因为我可以在模拟器上看到地图 [...]
在设备上测试它。默认情况下,在模拟器上,您获得的坐标是Apple的总部。参看doc
有关变通方法和有用的实用程序,请参阅此另外的问题:Testing CoreLocation on iPhone Simulator