无法在iPad应用中设置地图区域

时间:2015-11-23 02:54:01

标签: ios ipad mapkit

我有一个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

我已经仔细检查了,中心正是我想要的位置,但是我为这些中的任何一个值所做的并不重要,我总是让整个美国成为这个地区。

任何想法发生了什么变化或我忽略了什么?

我真的很感激任何帮助,因为这让我疯狂......

2 个答案:

答案 0 :(得分:0)

如果用户未提供授权,MapKit将无法放大用户的位置。

结果可能是只显示了美国的显示。

请求权限使用:

let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()

同时将密钥NSLocationWhenInUseUsageDescription添加到目标的Info.plist中。 type是一个字符串,在授权请求期间显示给用户。

答案 1 :(得分:-1)

不要过分指责:你撒谎。我使用您的值运行您的代码,它完美运行:

enter image description here

此应用的代码包含完全您的值和代码:

#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

很明显,你没有说实话;你遗漏了一些关于你正在做的事情的重要事情,因为当我做你说你正在做的事情时,我得到了正确的结果。