iPhone SDK: Track brukere plassering ved hjelp av GPS

stemmer
2

Jeg har noen spørsmål om CoreLocation og GPS.

Først, hvilken metode i kjernen stedet brukes til å stadig få brukerne nåværende koordinater? Og til hvilken intervall bør disse hentes?

For det andre, bør disse koordinatene bli skjøvet inn i et NSMutableArray hver gang de er mottatt, slik at rekken av koordinatene representerer brukerne banen?

Takk, bare ønsker å komme i gang å få meg tankene rundt dette.

Publisert på 19/05/2010 klokken 14:15
kilden bruker
På andre språk...                            


4 svar

stemmer
11

En svært forkortet versjon:

Først vedta <CLLocationManagerDelegate>protokollen i .h, og #import <CoreLocation/CoreLocation.h>.

Deretter i .m go:

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

Din -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocationmetode vil bli pinget hver gang Kjerne Location har noe å si til deg, som bør skje med noen sekunders mellomrom. de CLLocation objektene inneholde informasjon om nøyaktighet, slik at du kan skjerme for gode poeng i denne metoden.

Pass på å ringe [locationManager stopUpdatingLocation]og deretter [locationManager release]på et tidspunkt!

Lykke til å finne deg selv!

Svarte 19/05/2010 kl. 15:27
kilden bruker

stemmer
1

Du må gjøre følgende:

  1. Hvis enheten ikke har tilgang til internett
    1. Få koordinater fra GPS-enhet
    2. Send disse koordinater via SMS
    3. Motta og dekode SMS-melding på SMS gateway du må konfigurere for å motta informasjon fra enheten.
    4. Oppdatere info om programmet database eller en annen butikk du bruker
    5. Oppdater posisjon på kartet med siste info
  2. Hvis enheten får tilgang til Internett
    1. Få koordinater fra GPS-enhet
    2. Koble til applikasjonsserver (kan være noen tjeneste) og laste opp informasjon
    3. Oppdatere info om programmet database eller en annen butikk du bruker
    4. Oppdater posisjon på kartet med siste info
Svarte 30/08/2012 kl. 13:02
kilden bruker

stemmer
1

Du er i stand til å definere hva serien er akseptabelt for nøyaktighet, samt hvor ofte du ønsker å motta automatiske oppdateringer (basert på en avstand fra siste punktet mekanisme). Også kan du bare slå av plassjef og slå den på igjen på vilje gjennom noe bruk av et tidsur.

Som for å lagre steder å bygge en bane, det er ikke så enkelt. Du vil stadig få GPS steder først før den ønskede nøyaktigheten er oppnådd, og for noen poeng i fremtiden kan du få mer enn en som er unøyaktig før du får en god plassering. Så bygge en liste over disse punktene vil i utgangspunktet bare være en liste over deres vei, sammen med en masse ekstra poeng. Du kan løse dette ved å lagre bare de punktene som har nøyaktigheten du ønsker, men det er en ufullkommen verden i denne sammenheng.

Best case Jeg foreslår at du holder to lister, er en bane og den andre er en løpende liste over steder der du sammenligner til du får en svært nøyaktig plassering, og deretter sette det på din vei listen. Noen av de eksempel prosjekter gjør ting langs disse linjene, må sjekke dem ut.

Svarte 19/05/2010 kl. 15:15
kilden bruker

stemmer
1

Den beste måten å leses på CLLocationManager Class Reference , som linker til flere eksempler på prosjekter. Den korte versjonen:

  1. Sett delegateannonsen til en klasse som vil motta posisjonsoppdateringer.
  2. Implementere CLLocationManagerDelegateprotokoll i delegere.
  3. Ring appopriate metoder for å begynne å oppdatere plassering og / eller overskriften.
Svarte 19/05/2010 kl. 14:24
kilden bruker

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