簡體   English   中英

總是負速iOS

[英]Always negative speed iOS

我正在使用委托方法:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

為了獲得當前和舊位置,我使用了:

CLLocation *newLocation = [locations lastObject];
self.currentUserLocation = newLocation;

if(self.oldLocation == nil)
{
    self.oldLocation = newLocation;
    return;
}

編輯1:我現在可以獲得舊位置。

但是當我使用[newLocation speed];時,我總是有負速度[newLocation speed]; = -1

使用的設備是iPhone 4s。 你有想法嗎 ?

另外,對於locationManager,我使用了kCLLocationAccuracyBestForNavigation和kCLDistanceFilterNone。 我可以在地圖上看到我當前的位置在移動。

編輯2:

我終於用這種方法解決了速度問題:

- (CLLocationSpeed)speedTravelledFromLocation:(CLLocation*)fromLocation;
{
    NSTimeInterval tInterval = [self.timestamp timeIntervalSinceDate:fromLocation.timestamp];
    double distance = [self distanceFromLocation:fromLocation];
    double speed = (distance / tInterval);
    return speed;
}

此方法返回從self和fromLocation之間的距離和時間增量計算的速度。

我在這個存儲庫中找到了這個方法: https//github.com/100grams/CoreLocationUtils希望它能幫到某人;)

編輯3

得到它了! 那是因為我在模擬器上測試! 我在設備上進行了測試,使用[newLocation speed]的速度是正確的!

謝謝您的幫助。 此致,Lapinou。

為什么期望位置回調有2個或更多位置?

這個方法:

(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

通常只為您提供一個位置,除非由於某種原因多個位置在調用該方法之前到達,但您通常只會獲得一個位置。

問題是你假設那個方法給你以前的位置和新的位置,而不是那樣。

負速度通常意味着您沒有GPS信號。

暫無
暫無

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

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