2015-10-23 55 views
1

我有一個iOS應用程序,它使用用戶當前位置顯示用戶當前位置和目的地點之間的方向/距離。我能夠在地圖上顯示目的地點,但是當我嘗試使用CLlocationManager獲取用戶的當前位置時,它會返回座標(0,0)。以下是我檢索用戶位置的代碼。iOS:手錶套件獲取當前位置並在地圖上顯示

正在Apple Watch上檢索當前位置?

如果是這樣,我在這裏做錯了位置返回(0,0)?

CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; 
locationManager.distanceFilter = 5; 
CLLocation *location = locationManager.location; 

CLLocationCoordinate2D myLoc = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude); 

而且,我已經在我的.h文件中#IMPORT < CoreLocation/CoreLocation.h>和< CLLocationManagerDelegate>

+0

沒有ü添加所需的鍵UR plsit像NSLocationAlwaysUsageDescription? –

+0

:(不,我絕對忘了這麼做... –

+0

@ Mr.TI已經添加了NSLocationAlwaysUsageDescription到plist,並且在Capabilities選項卡下開啓了Maps,你知道locationManager不會返回一個位置的其他原因嗎? –

回答

3

試試下面的代碼:

@property (nonatomic, strong) CLLocationManager *locationManager; 

- (void)willActivate 
{ 
    self.locationManager = [[CLLocationManager alloc] init]; 
    [self.locationManager setDelegate:self]; 
    [self.locationManager requestLocation]; 
} 

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateLocations:(NSArray *)locations 
{ 
    if ([locations count] == 0) { 
     // error 
     return; 
    } 

    // success 
    self.currentLocation = [locations firstObject]; 
    CLLocationCoordinate2D myLoc = CLLocationCoordinate2DMake(
     self.currentLocation.coordinate.latitude, 
     self.currentLocation.coordinate.longitude); 
} 

- (void)locationManager:(CLLocationManager *)manager 
     didFailWithError:(nonnull NSError *)error 
{ 
    // error 
} 
+0

作品完美,謝謝!對於查找此答案的其他人,忽略didFailWithError方法會導致崩潰,請確保將您的密鑰添加到您的手錶擴展程序目標上的info.plist中,並啓用手錶擴展程序目標上功能選項卡下的地圖。 –

-2

如果您沒有實現這一點: (與屬性檢查器中或在程序上)

self.mapView.showsUserLocation =是

或者除了告訴mapView用戶的位置取決於LocationManager.location

+0

這是在Apple Watch上,WKInterfaceMap上沒有一個名爲showsUserLocation的屬性,您是否知道另一種解決方案? –

+0

道歉,我沒有完全閱讀,I不知道很多關於Watch Kit Framework的知識...但是Hasardly,什麼是返回LocationManager.location? – Lkm

+0

LocationManager.location返回null –

相關問題