Сравнить точки GPS с текущим местоположением - PullRequest
1 голос
/ 13 августа 2011

Я использую метод экземпляра distanceFromLocation для сравнения моего нового местоположения с определенными константными местоположениями

Я даю CLLocation * bonuslocation мгновенное значение, которое является одной из точек gps, которые меня интересуют, а затем ясравните его с новым местоположением, если расстояние составляет менее 20 м от точки, в которой воспроизводится аудиофайл.

Хотя это работает отлично для одного местоположения, оно не работает вообще, если я добавляю локально в функцию updatelocationmanagerбольше, чем один ..

Код:

CLLocation *bonuslocation = [.....]
CLLocationDistance distancea = [bonuslocation distanceFromLocation newlocation]
if (distancea <= 20)
{
//play an audio
}

Могу ли я дать несколько советов о том, как сделать это за 10 очков GPS ????

Сегодня мойДень рождения вы можете увидеть это как подарок на день рождения?Спасибо ..

1 Ответ

0 голосов
/ 13 августа 2011

Почему бы просто не поместить это в цикл? Или просто запустить сравнение по 10 локациям? Что именно не работает?

EDIT:

Вы никогда не упоминали, откуда у вас другие места, поэтому давайте предположим, что вы их как-то создали и сохранили в массиве ...

NSArray *locationArray;

Я понял из вашего комментария, что у вас разные звуки для каждой локации? Простой способ - сохранить звуки во втором массиве ...

NSArray *soundsArray;

Затем вы можете сделать следующее в вашем locationManager: didUpdateToLocation: fromLocation:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 

    for(int i=0; i<[locationArray count]; i++){
        CLLocation *location = (CLLocation *)[locationArray objectAtIndex:i];
        if([newLocation distanceFromLocation:location] < 20.0){
            //perform some action e.g.
            //play sound at [soundArray objectAtIndex:i]
        }
    }
}

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

...