Получение местоположений GPS и других атрибутов — НОВИЧОК

#iphone #objective-c #xcode

#iPhone #objective-c #xcode

Вопрос:

В настоящее время я выполняю это руководство, чтобы получить координаты GPS моего текущего местоположения. Мне нужно знать, что означают эти значения?

Первые 2 значения — это geo-coordinates , и я не знаю, каковы другие атрибуты?

Ответ №1:

Из библиотеки разработчиков iOS от Apple, что вы видите в результате description отправки селектора вашему CLLocation объекту (который представляет ваше текущее местоположение и другую информацию, связанную с местоположением):

Строка вида <<latitude>, <longitude>> /- <accuracy>m (speed
<speed> kph / heading <heading>) @ <date-time>
, где <latitude> , <longitude> , <accuracy> , <speed> , и <heading> представляют собой форматированные числа с плавающей запятой и <date-time> представляют собой форматированную строку даты, которая включает в себя информацию о дате, времени и часовом поясе.

То, что вы, вероятно, хотите сделать сейчас, это извлечь информацию из вашего CLLocation объекта, получив доступ к его различным свойствам (например CLLocation.altitude , вернет только высоту). Как правило, помимо целей отладки на консоли, вы не хотели бы печатать или отображать пользователю результат [CLLocation description] , который у вас есть!

Комментарии:

1. Итак , в таком случае может ли скорость когда — либо быть negative значением?

2. Я еще раз обращусь к документу, на который я ссылался в библиотеке разработчика (я предлагаю вам прочитать его!) Для записи вкл speed . указано: Это значение отражает мгновенную скорость устройства в направлении его текущего курса. Отрицательное значение указывает на недопустимую скорость. Поскольку фактическая скорость может меняться много раз между доставкой последующих событий определения местоположения, вы должны использовать это свойство только в информационных целях. Так что нет, скорость не должна быть отрицательной (хотя в документах говорится, что это может быть, это было бы просто недопустимо).

3. Да, я прочитал документ, и я прочитаю его еще раз. Поскольку это не фактическая скорость, есть ли какой-либо другой способ получить фактическую скорость перемещения пользователя?

4. Да, вы могли бы решить эту проблему (ну, довольно хорошее приближение), используя your CLLocationManager для получения обновлений местоположения, затем вычислите скорость, используя старую формулу speed = distance / time , где вы можете получить расстояние между двумя CLLocation объектами с distanceFromlocation: помощью метода, и вы можете рассчитать время, просто записав время между последующими обновлениями местоположения. Это потребует небольшой работы с вашей стороны!