requestLocation () не может предоставить Course на оборудовании для наблюдения, но работает в Sim - PullRequest
0 голосов
/ 04 января 2019

Я написал отдельное приложение Applewatch, которое использует GPS.Пытаясь быть хорошим гражданином и минимизировать энергопотребление, я использую метод запроса определения местоположения с помощью одного кадра.На симе Xcode это работает нормально, обеспечивая местоположение, курс и скорость (при использовании одного из записанных движений в симе).На реальном оборудовании я получаю точные данные о широте и длине, но курс всегда возвращает «-1».Примечание: я не ищу данные о курсе, так как в часах нет магнитометра.Я хочу курс по земле от ∆X, Y от GPS исправлений.Ожидаемое поведение состоит в том, что он не должен работать в симе с единственным выстрелом requestLocation (), но, поскольку он работает, почему бы не работать на реальной вещи?Кто-нибудь еще видел это?Это ошибка в Radar или функция?

Полагаю, если известно, что этот подход не работает, я мог бы попробовать startUpdating (), пока не увижу курс, а затем прекратить обновление, но Apple говорит, что это силасближение.

1 Ответ

0 голосов
/ 04 января 2019

Продолжая эксперименты, кажется, что проблема курса зависит от свойств экземпляра CLLocationManager: когда

locationMgr.desiredAccuracy = kCLLocationAccuracyKilometer
locationMgr.distanceFilter = kCLDistanceFilterNone
locationMgr.activityType = .otherNavigation  



No course reported by hardware(Sim does report),but when

locationMgr.desiredAccuracy = kCLLocationAccuracyBest
locationMgr.distanceFilter = kCLDistanceFilterNone
locationMgr.activityType = .otherNavigation

, тогда часы сообщают о курсе.Казалось бы, что .DistanceFilter должен иметь отношение к отчетам ∆X, ∆Y для курса, но почему значение .desiredAccuracy имеет значение?

Кстати, исходный код имеет точность 1 км из-за того, что Apple отмечает, что повышение точности увеличивает расход энергии.

...