iPhone SDK: Traccia posizione degli utenti utilizzando il GPS

voti
2

Ho un paio di domande su CoreLocation e GPS.

In primo luogo, il metodo in posizione centrale viene utilizzato per ottenere continuamente gli utenti attuali coordinate? E a quale intervallo devono essere recuperati questi?

In secondo luogo, qualora tali coordinate essere spinti in un NSMutableArray ogni volta che vengono ricevuti, in modo che l'array di coordinate rappresenterà percorso di utenti?

Grazie, che vogliono semplicemente per iniziare avermi mente intorno a questo.

È pubblicato 19/05/2010 alle 15:15
fonte dall'utente
In altre lingue...                            


4 risposte

voti
11

Una versione molto abbreviata:

In primo luogo, adottare il <CLLocationManagerDelegate>protocollo nel vostro .h, e #import <CoreLocation/CoreLocation.h>.

Poi, nel Go .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);
}

Il vostro -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocationmetodo otterrà il ping ogni volta Core Location ha qualcosa da dire a voi, che dovrebbe avvenire ogni pochi secondi. quegli oggetti CLLocation contengono informazioni sulla precisione, in modo da poter selezionare per buoni punti in quel metodo.

Assicurarsi di chiamare [locationManager stopUpdatingLocation]e poi [locationManager release]ad un certo punto!

Buona fortuna trovare te stesso!

Risposto il 19/05/2010 a 16:27
fonte dall'utente

voti
1

Si dovrà effettuare le seguenti operazioni:

  1. Se il dispositivo non può accedere a internet
    1. Ottenere coordinate dal dispositivo GPS
    2. Invia queste coordinate via SMS
    3. Ricevere e decodificare il messaggio SMS al gateway SMS è necessario configurare per ricevere informazioni dal dispositivo.
    4. Aggiornare le informazioni sul database dell'applicazione o di qualsiasi altro negozio che si sta utilizzando
    5. Aggiornare la posizione sulla mappa con le informazioni più recenti
  2. Se il dispositivo in grado di accedere a internet
    1. Ottenere coordinate dal dispositivo GPS
    2. Connettersi al server di applicazione (può essere un po 'di servizio) e caricare le informazioni
    3. Aggiornare le informazioni sul database dell'applicazione o di qualsiasi altro negozio che si sta utilizzando
    4. Aggiornare la posizione sulla mappa con le informazioni più recenti
Risposto il 30/08/2012 a 14:02
fonte dall'utente

voti
1

Siete in grado di definire ciò che gamma è accettabile per la precisione e la frequenza con cui si desidera ricevere gli aggiornamenti automatici (in base a una distanza dal meccanismo ultimo punto). Inoltre si può semplicemente spegnere il location manager e riaccenderlo a piacimento attraverso un certo uso di un timer.

Per quanto riguarda il salvataggio delle posizioni per costruire un percorso, non è così semplice. Sarà continuamente ottenere posizioni GPS in un primo momento fino ad ottenere la precisione desiderata, e per tutti i punti in futuro si potrebbe avere più di uno che è imprecisa prima di ottenere una buona posizione. Così la costruzione di un elenco di questi punti sarà essenzialmente essere solo un elenco del loro percorso, insieme a un sacco di punti extra. Si potrebbe risolvere questo salvando solo quei punti che hanno la precisione che desideri, ma il suo un mondo imperfetto in questo senso.

Miglior caso vorrei suggerire di tenere due liste, una è il percorso e l'altro è un elenco aggiornato dei luoghi in cui si confrontano fino ad ottenere una posizione altamente accurato, poi mettere che sulla vostra lista percorso. Alcuni dei progetti di esempio fare le cose in questo senso, non li controlla.

Risposto il 19/05/2010 a 16:15
fonte dall'utente

voti
1

Il modo migliore per viene letta la CLLocationManager Classe di riferimento , che collega a diversi progetti di esempio. La versione corta:

  1. Impostare la delegateproprietà a una classe che riceverà gli aggiornamenti di posizione.
  2. Implementare il CLLocationManagerDelegateprotocollo nel delegato.
  3. Chiamare i metodi adeguati e per avviare l'aggiornamento posizione e / o voce.
Risposto il 19/05/2010 a 15:24
fonte dall'utente

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