CllocationManager говорит, что я переехал 1200 + футов, когда я все еще сижу в своем кресле

StackOverflow https://stackoverflow.com/questions/2189484

Вопрос

Я получаю странные чтения при использовании CllocationManager. NAT / Long сообщил, на месте, но пройденное расстояние выходит. Я реализовал следующий метод делегата как:

.h:
    CLLocationManager *mLocationManager;
    CLLocation *mStartDistance;

А также

.m:
    - (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation
    fromLocation:(CLLocation *)oldLocation
    {
        NSLog(@"%g", newLocation.coordinate.latitude);
        NSLog(@"%g", newLocation.coordinate.longitude);
        NSLog(@"%g", newLocation.altitude);
        NSLog(@"%g", newLocation.verticalAccuracy);

    if (mStartDistance == nil)
    { mStartDistance = newLocation; }

    CLLocationDistance dist = [newLocation getDistanceFrom:mStartDistance];
    NSLog(@"%gm", dist);
}

И когда я запускаю это на моем устройстве, я получаю следующее (Lat / Long Masked, чтобы защитить виновную хех):

] xx.xxxx
] -yy.yyyy
] 0
] -1
] 0m

] xx.xxxx
] -yy.yyyy
] 0
] -1
] 0m

] xx.xxxx
] -yy.yyyy
] 0
] -1
] 376.133m <-- wat?

Я не понимаю, почему его говорят, что я переехал + 376м .. Это похоже на + 1200 футов!

Это было полезно?

Решение

Если вы также войдите в систему newLocation.horizontalAccuracy, Вы, вероятно, увидите это для первых двух обновлений, это более 400 м. Он не использует GPS (вы внутри, и он дает вам -1 для вертикальной точности высоты), а триангуляция сотового телефона может быть довольно плохим изначально. Иногда мое начальное расположение только точнее до 10 миль, но оно все еще ставит лучшее предположение. Как только он получает лучшую замок, этот момент может двигаться довольно быстро.

Часть сложности в использовании CORELocation определяет ваш собственный эвристический для принятия или отклонения обновления. Некоторые вещи, которые следует учитывать, - это горизонтальная точность, время, потраченное на обновление, а количество предыдущих обновлений, которые вы получили. Я видел довольно несколько схем, были обсуждены на этом сайте ранее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top