мне нужно рассчитать все параметры GPS в моей программе, поэтому я использую этот кусок кода:Как рассчитать ВСЕ GPS данные CLLocationManager одновременно
(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
CLLocation* loc = [locations lastObject];
, который собирает все измерения GPS (высота, скорость , и т. д.) в объекте loc, и у меня есть информация lat/long (и loc.coordinate.longitude
), но это НОВЫЕ измеренные координаты.
Как я также хочу рассчитать расстояние между измерениями, как я могу получить как «новые» координаты, так и «старые» координаты из метода didUpdateLocations
?
Если добавить еще один locationManager вызов с помощью метода didUpdateToLocation в программе (которая даст старые и новые координаты):
(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
первоначальный метод locationManager (didUpdateLocations) не вызывается вообще, так что я не могу вычислить все данные GPS плюс расстояние ...
Второй метод, который вы указали, устарел - заменен первым, но если вы реализуйте его, тогда первый метод не вызывается - как вы нашли. Вам нужно сохранить предыдущее местоположение в свойстве и сравнить/рассчитать на основе этого при следующем вызове – Paulw11
Поскольку я новичок в программировании на iOS, как мне скопировать объект местоположения на другой объект (то есть в прежнее место) с видимостью за пределами CLLocationManage (поэтому я могу сравнить последние данные о местоположении в следующем вызове метода CLLocationManager)?Я получаю доступ к свойствам lat/long объекта loc, но метод CLLocationDistance, который я вызову, требует объектов в качестве аргументов, а не свойств. – DaliGR
Просто создайте свойство для своего класса, в котором хранится CLLocation. – Paulw11