iPhone SDK: Tor użytkowników położenie za pomocą GPS

głosy
2

Mam kilka pytań dotyczących CoreLocation i GPS.

Po pierwsze, jaka metoda w lokalizacji podstawowej służy do ciągłego uzyskać użytkownikom bieżące współrzędne? I na co interwał powinny one zostać odzyskane?

Po drugie, należy te współrzędne zostać przesunięta do NSMutableArray za każdym razem są one odbierane, tak że tablica współrzędnych będzie reprezentować ścieżkę użytkowników?

Dzięki, po prostu chcą, aby zacząć się mnie nic wokół tego.

Utwórz 19/05/2010 o 15:15
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
11

Bardzo skrócona wersja:

Po pierwsze, przyjęcie <CLLocationManagerDelegate>protokołu w swoim .h, a #import <CoreLocation/CoreLocation.h>.

Następnie w .m podróży:

- (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);
}

Twoja -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocationmetoda dostanie ping za każdym razem Rdzeń Lokalizacja ma coś do powiedzenia, co powinno nastąpić co kilka sekund. te obiekty CLLocation zawierać informacje o dokładności, można więc poszukiwania dobrych punktów w tej metodzie.

Pamiętaj, aby zadzwonić [locationManager stopUpdatingLocation], a następnie [locationManager release]w pewnym momencie!

Powodzenia w znalezieniu siebie!

Odpowiedział 19/05/2010 o 16:27
źródło użytkownik

głosy
1

Trzeba będzie wykonać następujące czynności:

  1. Jeśli urządzenie nie może uzyskać dostępu do Internetu
    1. Uzyskaj współrzędne z urządzenia GPS
    2. Wyślij te współrzędne przez SMS
    3. Odbierać i dekodować wiadomości SMS przy wjeździe SMS należy skonfigurować, aby otrzymywać informacje z urządzenia.
    4. Aktualizować informacje w bazie danych aplikacji lub innego sklepu używasz
    5. Aktualizowania położenia na mapie z najnowszych informacji
  2. Jeśli urządzenie może uzyskać dostęp do Internetu
    1. Uzyskaj współrzędne z urządzenia GPS
    2. Połącz się z serwerem aplikacji (mogą być niektóre usługi) i przesłać informację
    3. Aktualizować informacje w bazie danych aplikacji lub innego sklepu używasz
    4. Aktualizowania położenia na mapie z najnowszych informacji
Odpowiedział 30/08/2012 o 14:02
źródło użytkownik

głosy
1

Jesteś w stanie określić jaki zakres jest do zaakceptowania pod względem dokładności, a także jak często chcesz otrzymywać automatycznych aktualizacji (na podstawie odległości od ostatniego mechanizmu pkt). Ponadto można po prostu wyłączyć menedżera lokalizacji i włącz go ponownie do woli thru pewnym wykorzystaniem timera.

Jeśli chodzi o oszczędność lokalizacje budować drogę, to nie jest takie proste. Będziesz stale się lokalizacje GPS początkowo aż pożądana dokładność osiąga, a dowolnymi punktami w przyszłości może pojawić się więcej niż jeden, który jest niedokładna, zanim pojawi się dobrą lokalizację. Tak buduje listę tych punktów będzie w zasadzie tylko być lista ich drodze, wraz z dużą ilością dodatkowych punktów. Można rozwiązać ten problem poprzez zapisanie tylko te punkty, które mają dokładność pragnienie, ale jego niedoskonałym świecie w tym zakresie.

Najlepszy przypadek Proponuję zachować dwa listy, jeden jest droga, a druga to działa lista miejsc, w których porównujesz aż do uzyskania bardzo dokładną lokalizację, a następnie umieszczenie że na liście ścieżek. Niektóre z przykładowych projektów robić rzeczy wzdłuż tych linii, należy je sprawdzić.

Odpowiedział 19/05/2010 o 16:15
źródło użytkownik

głosy
1

Najlepszym sposobem jest odczytać CLLocationManager Class Reference , który prowadzi do kilku przykładowych projektów. Wersja krótka:

  1. Ustaw delegatewłaściwość do klasy, która będzie otrzymywać aktualizacje lokalizacji.
  2. Wdrożenie CLLocationManagerDelegateprotokołu w delegata.
  3. Wywołać metody appopriate aby rozpocząć aktualizację położenia i / lub nagłówek.
Odpowiedział 19/05/2010 o 15:24
źródło użytkownik

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