簡體   English   中英

無法在 iPad 應用程序中設置地圖區域

[英]Can't set map region in iPad app

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

我已經仔細檢查過,中心正是我想要的位置,但是我為其中任何一個設置什么值並不重要,我總是把整個美國作為區域。

任何想法發生了什么變化或我忽略了什么?

我真的很感激任何幫助,因為這讓我發瘋......

如果用戶未提供授權,MapKit 將無法放大用戶的位置。

結果可以是僅顯示美國的顯示。

請求許可使用:

let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()

NSLocationWhenInUseUsageDescription密鑰NSLocationWhenInUseUsageDescription添加到目標的 Info.plist。 該類型是一個字符串,並在授權請求期間向用戶顯示。

不要過分強調這一點:你在撒謊。 我用你的價值觀運行了你的代碼,它工作得很好:

在此處輸入圖片說明

此應用程序的代碼完全由您的值和代碼組成:

#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

很明顯,你沒有說實話; 你遺漏了一些關於你正在做的重要事情,因為當我按照你說的做時,我得到了正確的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM