我有一个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
我已经仔细检查了,中心正是我想要的位置,但是我为这些中的任何一个值所做的并不重要,我总是让整个美国成为这个地区。
任何想法发生了什么变化或我忽略了什么?
我真的很感激任何帮助,因为这让我疯狂......
答案 0 :(得分:0)
如果用户未提供授权,MapKit将无法放大用户的位置。
结果可能是只显示了美国的显示。
请求权限使用:
let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()
同时将密钥NSLocationWhenInUseUsageDescription
添加到目标的Info.plist中。 type是一个字符串,在授权请求期间显示给用户。
答案 1 :(得分:-1)
不要过分指责:你撒谎。我使用您的值运行您的代码,它完美运行:
此应用的代码包含完全您的值和代码:
#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
很明显,你没有说实话;你遗漏了一些关于你正在做的事情的重要事情,因为当我做你说你正在做的事情时,我得到了正确的结果。