Ios Can';在iPad应用程序中设置地图区域
我有一个iPad应用程序,它有一个功能,可以在MKMapView中显示一个区域以及用户的位置。这过去很好用,但现在它总是显示整个美国作为一个地区,不管我把它设置为什么。但是,它确实正确地显示了用户的位置 设置区域的代码是Ios Can';在iPad应用程序中设置地图区域,ios,ipad,mapkit,Ios,Ipad,Mapkit,我有一个iPad应用程序,它有一个功能,可以在MKMapView中显示一个区域以及用户的位置。这过去很好用,但现在它总是显示整个美国作为一个地区,不管我把它设置为什么。但是,它确实正确地显示了用户的位置 设置区域的代码是 MKCoordinateSpan span = {.latitudeDelta = latSpan, .longitudeDelta = longSpan}; MKCoordinateRegion mapRegion = {center, span}; [self.mapV
MKCoordinateSpan span = {.latitudeDelta = latSpan, .longitudeDelta = longSpan};
MKCoordinateRegion mapRegion = {center, span};
[self.mapView setRegion:mapRegion];
这些变量的值是
center = {latitude = 37.525553000000002, longitude = -121.9351005}
latSpan = 0.0029800000000008708
longSpan = 0.011071000000001163
我仔细检查了一下,中心正是我想要的位置,但不管我对其中任何一个的值是多少,我总是把整个美国作为一个地区
有什么想法改变了什么或者我忽略了什么
我真的很感激任何帮助,因为这让我发疯……不要说得太过分:你在撒谎。我使用您的值运行了您的代码,它运行得非常完美: 此应用程序的代码完全由您的值和代码组成:
#import "ViewController.h"
@import MapKit;
@interface ViewController ()
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
CLLocationCoordinate2D center = {37.525553000000002, -121.9351005};
double latSpan = 0.0029800000000008708;
double longSpan = 0.011071000000001163;
MKCoordinateSpan span = {.latitudeDelta = latSpan, .longitudeDelta = longSpan};
MKCoordinateRegion mapRegion = {center, span};
[self.mapView setRegion:mapRegion];
}
@end
很明显,你没有说实话;你遗漏了一些关于你正在做的事情的重要信息,因为当我做你说你正在做的事情时,我得到了正确的结果。如果用户未提供授权,MapKit将无法放大用户的位置 结果可能是只显示美国的一个显示 使用以下命令请求权限:
let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()
另外,将密钥
nslocationwhenUsageDescription
添加到目标的Info.plist中。该类型是一个字符串,在授权请求期间显示给用户。self.mapView不是nil,我知道它设置正确,因为它确实正确显示了我的位置。那么是什么原因导致了这种情况?很明显,在我的课堂上,我想重置地图区域,但我看不出是什么。我发布的代码是我的类中唯一在mapViewWell上调用setRegion的地方,显示用户的位置会导致您尝试设置区域时发生冲突。-我不明白为什么我的答案应该被否决;我演示了绝对有效的代码。但是OP说:“它确实正确地显示了用户的位置。”没有授权,这是不可能的。因此,我们不必得出结论,这不是授权问题吗?@matt这可能与在iOS版本之间切换有关,在iOS版本中,位置服务没有被完全拒绝,但也不能完全工作。我不完全确定确切的原因,但我以前见过类似的情况。