Ios Can';在iPad应用程序中设置地图区域

Ios Can';在iPad应用程序中设置地图区域,ios,ipad,mapkit,Ios,Ipad,Mapkit,我有一个iPad应用程序,它有一个功能,可以在MKMapView中显示一个区域以及用户的位置。这过去很好用,但现在它总是显示整个美国作为一个地区,不管我把它设置为什么。但是,它确实正确地显示了用户的位置 设置区域的代码是 MKCoordinateSpan span = {.latitudeDelta = latSpan, .longitudeDelta = longSpan}; MKCoordinateRegion mapRegion = {center, span}; [self.mapV

我有一个iPad应用程序,它有一个功能,可以在MKMapView中显示一个区域以及用户的位置。这过去很好用,但现在它总是显示整个美国作为一个地区,不管我把它设置为什么。但是,它确实正确地显示了用户的位置

设置区域的代码是

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版本中,位置服务没有被完全拒绝,但也不能完全工作。我不完全确定确切的原因,但我以前见过类似的情况。