Установка фильтра расстояния
Для получения широты и долготы местности в градусах достаточно обратиться к данному свойству следующим образом:
CLLocationDegrees latitude = theLocation.coordinate.latitude;
CLLocationDegrees longitude - theLocation.coordinate.longitude;
Объект типа CLLocation может также сообщить, насколько уверенно диспетчер местоположения рассчитывает широту и долготу местности. Так, свойство horizontalAccuracy описывает радиус окружности, в центре которой находятся координаты местности из свойства coordinate. Чем больше значение, хранящееся в свойстве horizontalAccuracy, тем менее уверенно определяется местоположение в Core Location. Между тем очень малый радиус свидетельствует о высокой степени уверенности в определении местоположения.
Графическое представление свойства horizontalAccuracy можно посмотреть в стандартном приложении Maps. Кругом в этом представлении обозначен радиус определения местоположения в приложении Maps с помощью свойства horizontalAccuracy. Исходно диспетчер местоположения предполагает, что пользователь находится в центре этого круга. В противном случае пользователь, вероятнее всего, находится где-то внутри этого круга. Отрицательное значение, хранящееся в свойстве horizontalAccuracy, обозначает, что пользователь данного приложения не может по той или иной причине доверять координатам местности, доступным в свойстве coordinate.
У объекта типа CLLocation имеется также свойство altitude, позволяющее определить высоту местности над уровнем моря.
CLLocationDistance altitude - theLocation.altitude;
Кроме того, у каждого объекта типа CLLocation имеется свойство verticalAccuracy, обозначающее степень уверенности подсистемы Core Location в определении высоты местности над уровнем моря. Значение высоты над уровнем моря может отличаться от истинного на многие метры в зависимости от значения, доступного в свойстве verticalAccuracy, и если значение verticalAccuracy отрицательно, то подсистема Core Location сообщает, что не в состоянии достоверно определить высоту над уровнем моря.
Объекты типа CLLocation содержат также временную метку, обозначающую момент, в который диспетчер местоположения производил определение местности.
Помимо упомянутых выше свойств, в классе CLLocation имеется также полезный метод экземпляра, позволяющий определить расстояние между двумя объектами типа CLLocation. Этот метод называется distanceFromLocation.
- Дата: 24-01-2015, 21:07