Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Corso Tecnologie Mobile - Lezione laboratorio 2

843 views

Published on

Slide della seconda attività di laboratorio del corso ENAIP in Tecnologie di Rete Mobile. Realizziamo insieme un semplice progetto per monitorare la posizione della nostra automobile

Published in: Technology
  • Be the first to comment

Corso Tecnologie Mobile - Lezione laboratorio 2

  1. 1. Tecnologie Mobili - Lezione Laboratorio 2 Ritroviamo l’automobile
  2. 2. Requisiti <ul><li>Sviluppare una applicazione che consente di definire dove si trova un veicolo utente e di recuperare la posizione in un secondo momento </li></ul><ul><ul><li>Visualizzazione sulla cartina </li></ul></ul><ul><ul><li>Identificazione del percorso per raggiungere l’auto </li></ul></ul>Dr. Paolo Casoto, Ph.D - 2011
  3. 3. Dr. Paolo Casoto, Ph.D - 2011 http://www.flickr.com/photos/vimages/2474339271/ Vogliamo evitare questo…
  4. 4. Passo 1 - Creazione del progetto <ul><li>Creiamo un progetto come abbiamo già fatto la scorsa settimana, per iPhone, senza abilitare alcuna opzione </li></ul>Dr. Paolo Casoto, Ph.D - 2011
  5. 5. Passo 2 – Importiamo le librerie necessarie <ul><li>Prima di avviare la realizzazione del progetto dobbiamo importare 2 librerie necessarie al nostro progetto </li></ul><ul><ul><li>MAPKIT : libreria per la gestione delle mappe e dell’interazione con le mappe </li></ul></ul><ul><ul><li>CORELOCATION : libreria per la gestione del segnale GPS e per l’identificazione della posizione dell’utente. </li></ul></ul><ul><li>Importeremo le due librerie all’interno dei file ViewController.h e ViewController.m </li></ul>Dr. Paolo Casoto, Ph.D - 2011
  6. 6. Passo 2 – Importiamo le librerie necessarie Dr. Paolo Casoto, Ph.D - 2011 Qui >>
  7. 7. Passo 3 – Inseriamo le componenti grafiche <ul><li>Di cosa abbiamo bisogno ? </li></ul><ul><ul><li>Un pulsante per la memorizzazione della posizione </li></ul></ul><ul><ul><li>Un pulsante per visualizzare il percorso dalla posizione attuale alla posizione dell’auto </li></ul></ul><ul><ul><li>Un pulsante per eliminare la posizione memorizzata </li></ul></ul><ul><ul><li>Una etichetta per visualizzare l’indirizzo dove è posizionato l’utente </li></ul></ul><ul><ul><li>Una etichetta per visualizzare l’indirizzo dove è posizionata l’auto </li></ul></ul><ul><ul><li>Ed infine…la mappa </li></ul></ul>Dr. Paolo Casoto, Ph.D - 2011
  8. 8. Passo 3 – Inseriamo le componenti grafiche Dr. Paolo Casoto, Ph.D - 2011
  9. 9. Passo 4 – Aggiungiamo i riferimenti all’interno del codice <ul><li>All’interno del codice dobbiamo aggiungere i riferimenti ad alcuni elementi o attività della nostra interfaccia grafica. </li></ul><ul><li>Quali ? </li></ul><ul><ul><li>Le due etichette…poiché dobbiamo scriverci all’interno. </li></ul></ul><ul><ul><li>La mappa…poiché dobbiamo collocarci all’interno la posizione dell’utente e dell’auto </li></ul></ul><ul><ul><li>Le azioni da collegare ai pulsanti </li></ul></ul>Dr. Paolo Casoto, Ph.D - 2011
  10. 10. Passo 4 – Aggiungiamo i riferimenti all’interno del codice Dr. Paolo Casoto, Ph.D - 2011
  11. 11. Dr. Paolo Casoto, Ph.D - 2011
  12. 12. Passo 5 - Introduciamo i metodi per la gestione della mappa <ul><li>All’interno del metodo viewDidLoad indichiamo che la nostra mappa dovrà visualizzare automaticamente la posizione dell’utente. </li></ul><ul><ul><li>self.map.showsUserLocation = YES; </li></ul></ul><ul><li>Nel file xib devo collegare il delegato della mappa alla File ’ s Owner, per indicare che è il controller stesso a controllare alcuni dei comportamenti della mappa </li></ul><ul><li>In particolare andremo a ridefinire il metodo - (void) mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation per garantire l ’ aggiornamento della posizione dell ’ utente </li></ul>Dr. Paolo Casoto, Ph.D - 2011
  13. 13. Passo 5 - Introduciamo i metodi per la gestione della mappa Dr. Paolo Casoto, Ph.D - 2011 << Localizzazione dell’utente << Centro la mappa
  14. 14. Passo 5 - Introduciamo i metodi per la gestione della mappa <ul><li>Il metodo </li></ul><ul><ul><li>(void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated; </li></ul></ul><ul><ul><li>centra la mappa attorno alla posizione dell’utente </li></ul></ul><ul><li>Il metodo </li></ul><ul><ul><li>- (void)setRegion:(MKCoordinateRegion)region animated:(BOOL)animated; </li></ul></ul><ul><ul><li>utilizza la posizione dell’utente e dell’autoveicolo per definire una opportuna area per la visualizzazione all’interno della mappa che consenta di visualizzare tutte le informazioni necessarie. </li></ul></ul>Dr. Paolo Casoto, Ph.D - 2011
  15. 15. Passo 6 - Il geocoding <ul><li>Dobbiamo identificare l’indirizzo delle posizioni GPS dove si trova l’utente e dove si trova l’automobile. </li></ul><ul><li>Nello specifico dobbiamo fare la cosiddetta attività di GEOCODING (dalle coordinate all’indirizzo) </li></ul><ul><ul><li>Il contrario prende il nome di Reverse Geocoding </li></ul></ul><ul><li>Dalla versione 5.0 il geocoding è realizzato mediante i metodi della classe CLGeocoder e, in particolare, il metodo geocoder reverseGeocodeLocation:location completionHandler </li></ul><ul><ul><li>completitionHandler è un puntatore a funzione, che l ’ utente può definire sul momento per consentire la gestione del risultato della funzione di geocoding. </li></ul></ul>Dr. Paolo Casoto, Ph.D - 2011
  16. 16. Dr. Paolo Casoto, Ph.D - 2011 http://www.flickr.com/photos/irisheyes/7282155
  17. 17. Passo 6 - Il geocoding <ul><li>Quando attivare il processo di geocoding ? </li></ul><ul><ul><li>All’avvio del sistema per la posizione utente e della eventuale posizione dell’auto già registrata </li></ul></ul><ul><ul><li>Alla modifica della posizione utente </li></ul></ul><ul><ul><li>Alla registrazione di una nuova posizione per l’auto </li></ul></ul><ul><li>Cosa fare all’arrivo dei dati ? </li></ul><ul><ul><li>I dati del processo di geolocalizzazione sono memorizzati all’interno di un oggetto CLPlacemark. </li></ul></ul><ul><ul><li>I campi dell’oggetto, opportunamente formattati, devono essere assegnati all’interno delle stringhe che descrivono i due indirizzi </li></ul></ul>Dr. Paolo Casoto, Ph.D - 2011
  18. 18. Passo 6 - Il geocoding Dr. Paolo Casoto, Ph.D - 2011 << Formattazione dei dati << Funzione di callback
  19. 19. Passo 7: salvataggio dei dati <ul><li>Per la memorizzazione dei dati ed il loro recupero al riavvio della applicazione utilizziamo il meccanismo di persistenza più semplice fra quelli offerti da iOS: NSUserDefaults </li></ul><ul><ul><li>Hashtable chiave-valore di oggetti persistenti, che l ’ utente può utilizzare per memorizzare informazioni </li></ul></ul><ul><ul><li>E ’ consigliabile solo per insiemi limitati di informazioni. </li></ul></ul><ul><ul><li>Il metodo synchronize ne consente la memorizzazione. </li></ul></ul>Dr. Paolo Casoto, Ph.D - 2011
  20. 20. Dr. Paolo Casoto, Ph.D - 2011
  21. 21. Domande ??? Grazie a tutti per l’attenzione Dr. Paolo Casoto, Ph.D - 2011

×