Domanda

Sto cercando alcuni feedback, link ai blog, ecc. che offrono alcuni suggerimenti e trucchi per lo sviluppo GPS di iPhone. Ho letto e compreso l'API, ho la mia app demo attiva e funzionante, ecc. Ma ho incontrato alcune & Quot; quirks & Quot; con gps su iphone. Ad esempio, sembra che riceverai molti meno aggiornamenti di posizione quando il tuo iPhone inserisce & Quot; risparmio energetico & Quot; modalità. Ho letto che puoi combatterlo suonando musica nella tua applicazione [non sono sicuro che sia vero].

Sembra anche che, in termini di fabbricazione di un ragionevole contapassi, si dovrebbe filtrare qualsiasi lettura con precisione orizzontale inferiore a 20 metri. Suona bene?

Esiste un qualche tipo di elenco di controllo sul web per gli iPhone GPS?

Grazie in anticipo.

È stato utile?

Soluzione

Non conosco alcun elenco specifico, ma qui ci sono alcune cose che dovresti tenere a mente:

  • Non stai effettuando ricerche GPS. Stai effettuando ricerche sulla posizione principale. La posizione principale potrebbe o non potrebbe ottenere le sue informazioni dal GPS. Molte persone usano ancora iPhone pre-3G che non dispongono di GPS, e anche su un telefono 3G il GPS potrebbe non essere disponibile in molti casi (se la persona è al chiuso, ad esempio). In questi casi il telefono tenterà di triangolare in base alle torri del telefono cellulare e Core Location restituirà il risultato. Sarà molto meno preciso del GPS.
  • La posizione principale memorizzerà i dati nella cache. La prima lettura che fornisce alla tua app sarà probabilmente una lettura precedente, che potrebbe essere o non essere accurata, a seconda che il telefono si sia spostato. Assicurati di controllare il timestamp di qualsiasi posizione e vedere se proviene da prima dell'avvio della tua app.
  • Non so cosa intendi per " risparmio energetico " modalità, ma se stai pensando a quando lo schermo è bloccato / spento, ciò non impedisce l'esecuzione di Core Location se la tua app è ancora in esecuzione. Al contrario, è facile scaricare la batteria del telefono molto più rapidamente di quanto ci si aspetterebbe se si blocca il telefono mentre è in esecuzione un'app che utilizza la posizione principale, poiché il telefono continuerà ad aggiornare l'app quando sono disponibili nuovi dati sulla posizione. È possibile evitarlo nell'applicazione ascoltando UIApplicationWillResignActiveNotification per rilevare il blocco dello schermo e UIApplicationDidBecomeActiveNotification per rilevare lo sblocco.
  • Risultati di precisione più elevati impiegheranno più tempo ad acquisire, perché più si aspetta, migliori sono i risultati, fino a un limite. Se decidi di essere a meno di N metri, considera per quanto tempo l'utente potrebbe dover rimanere lì in attesa che il telefono torni a casa nella sua posizione.

Se 20 metri sono abbastanza precisi è qualcosa che solo tu puoi rispondere, in base al modo in cui prevedi che la tua applicazione venga utilizzata. Testa l'app e verifica se funziona nel modo desiderato.

Altri suggerimenti

Tom ha avuto un'ottima risposta (volevo notare soprattutto che il solito ritorno del primo valore potrebbe essere una posizione memorizzata nella cache precedente) ma avevo alcune altre cose da aggiungere:

  • Puoi dire al gestore della posizione di interrompere e ricominciare se vuoi forzarlo a emetterti almeno un altro aggiornamento di posizione.
  • Se non lo sapevi, ci sono metodi di praticità in CLLocation per darti la distanza tra due posizioni.
  • Come nota la documentazione, è necessario implementare locationManager: didFailWithError: anche se non è necessario (se non altro per interrompere gli aggiornamenti del gestore della posizione per un certo periodo).
  • Verifica accuratamente gli scenari in cui l'utente non consente gli aggiornamenti di posizione per la tua applicazione!
  • Molto, molto raramente potresti ricevere aggiornamenti fuori servizio (ad esempio, ottieni una posizione più accurata seguita da una leggermente meno accurata datata prima)
  • Il simulatore ti darà un aggiornamento della posizione, ma segnalerà sempre la tua posizione come quartier generale di Apple.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top