iPhone SDK: Отслеживание пользователей местоположение с помощью GPS

голоса
2

У меня есть несколько вопросов о CoreLocation и GPS.

Во-первых, какой метод в базовом месте используется, чтобы постоянно получать пользователей текущие координаты? И в какой интервал должен это восстановить?

Во-вторых, если эти координаты будут заталкивают в NSMutableArray каждый раз, когда они получили, так что массив координат будет представлять собой путь пользователи?

Спасибо, просто хочет, чтобы начать получать меня возражают вокруг этого.

Задан 19/05/2010 в 15:15
источник пользователем
На других языках...                            


4 ответов

голоса
11

Очень сокращенный вариант:

Во- первых, принять <CLLocationManagerDelegate>протокол в вашем .h, и #import <CoreLocation/CoreLocation.h>.

Тогда в .m ходу:

- (void)viewDidLoad {
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    [locationManager startUpdatingLocation];
}


-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation
{
    CLLocationCoordinate2D here =  newLocation.coordinate;
    NSLog(@"%f  %f ", here.latitude, here.longitude);
}

Ваш -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocationметод будет получить пингуется каждый раз , когда Core Location есть что сказать вам, что должно произойти через каждые несколько секунд. эти объекты CLLocation содержат информацию о точности, так что вы можете экранировать для хороших точек в этом методе.

Обязательно позвонить , [locationManager stopUpdatingLocation]а затем [locationManager release]в какой - то момент!

Удачи в поиске себя!

Ответил 19/05/2010 в 16:27
источник пользователем

голоса
1

Вы должны сделать следующее:

  1. Если устройство не может получить доступ к Интернету
    1. Получить координаты от GPS устройства
    2. Отправить эти координаты с помощью SMS
    3. Прием и декодирование SMS сообщения на шлюзе SMS вы должны настроить, чтобы получить информацию от устройства.
    4. Обновление информации в базе данных приложения или любой другой магазин, который вы используете
    5. Обновление позиции на карте с последней информацией
  2. Если устройство может получить доступ к Интернету
    1. Получить координаты от GPS устройства
    2. Подключение к серверу приложений (могут быть некоторые услуги) и загружать информацию
    3. Обновление информации в базе данных приложения или любой другой магазин, который вы используете
    4. Обновление позиции на карте с последней информацией
Ответил 30/08/2012 в 14:02
источник пользователем

голоса
1

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

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

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

Ответил 19/05/2010 в 16:15
источник пользователем

голоса
1

Лучший способ это прочитать класс Reference CLLocationManager , которая связывает несколько примеров проектов. Короткая версия:

  1. Установите delegateсвойство класса , который будет получать обновление местоположения.
  2. Реализация CLLocationManagerDelegateпротокола в делегатом.
  3. Назовите методы соответствии с характеристиками имеющихся начать обновление местоположения и / или заголовка.
Ответил 19/05/2010 в 15:24
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more