• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#005 – Usare le mappe di google

By Redazione | on 7 Novembre 2009 | 22 Comments
Senza categoria

mappeIS Con il tutorial di oggi vedremo come usare le mappe di google all’interno delle nostre applicazioni. Il programma che creeremo ci permetterà di visualizzare la mappa di google, scegliere il tipo di visualizzazione mostrata tra standard, satellite o ibrida, abilitare o disabilitare le funzioni di zoom e scroll utilizzabili tramite il multitouch e mostrare la nostra posizione sulla mappa. Tutto ciò è reso possibile grazie Framework MapKit, che dovremo ovviamente aggiungere al nostro progetto.

Creiamo un nuovo progetto, scegliendo dai template proposti “View-based Application”, diamo il nome alla nostra applicazione, ad esempio “mappe”, scegliamo la posizione dove salvare e proseguiamo. Prima di tutto aggiungiamo il framework. Per farlo cliccate col pulsante destro del mouse sulla cartella “Resources” dentro “Groups & Files”, cliccate quindi su “Add” e infine su “Existing Frameworks…”. Selezionate mapKit.framework, quindi cliccate su Add:


mapKit_Framework

Apriamo ora il file “mappeViewController.h” e inseriamo il codice seguente:

#import 
#import 

@interface mappeViewController : UIViewController  {
	IBOutlet MKMapView *mapView;
	IBOutlet UISwitch *switchZoom;
	IBOutlet UISwitch *switchScroll;
	IBOutlet UIButton *cmdMiaPosizione;
	IBOutlet UISegmentedControl *segmentTipoMappa;
}

- (IBAction)gestioneZoom:(id)sender;
- (IBAction)gestioneScroll:(id)sender;
- (IBAction)visualizzaMiaPosizione:(id)sender;
- (IBAction)mostraTipoMappa:(id)sender;

@end

Come potete vedere, abbiamo provveduto ad importare il framework grazie all’istruzione “#import MapKit/MapKit.h” e a specificare il protocollo “MKMapViewDelegate”. Abbiamo inoltre dichiarato 5 oggetti di tipo IBOutlet, che collegheremo poi ad altrettanti oggetti creati in Interface Builder. Le dichiarazioni comprendono la vista della mappa di tipo MKMapView, due controlli switch per il controllo di zoom e scroll di tipo UISwitch, un pulsante UIButton che useremo per mostrare la nostra posizione e un UISegmentedControl che useremo infine per scegliere il tipo di visuale per la mappa. Dopodichè abbiamo dichiarato i 4 metodi che ci permetteranno di eseguire le operazioni appena descritte.

Apriamo ora il file “mappeViewController.m” e andiamo a scrivere il codice dei nostri metodi.

- (IBAction)gestioneZoom:(id)sender{
	if (switchZoom.on){
		mapView.zoomEnabled=TRUE;
	} else {
		mapView.zoomEnabled=FALSE;
	}

}

- (IBAction)gestioneScroll:(id)sender{
	if (switchScroll.on){
		mapView.scrollEnabled=TRUE;
	} else {
		mapView.scrollEnabled=FALSE;
	}

}

- (IBAction)visualizzaMiaPosizione:(id)sender{
	mapView.showsUserLocation=TRUE;
}

- (IBAction)mostraTipoMappa:(id)sender{
	if ([segmentTipoMappa selectedSegmentIndex]==0) {
		mapView.mapType = MKMapTypeStandard;
	} else if ([segmentTipoMappa selectedSegmentIndex]==1) {
		mapView.mapType = MKMapTypeSatellite;
	} else if ([segmentTipoMappa selectedSegmentIndex]==2) {
		mapView.mapType = MKMapTypeHybrid;
	}
}

Il codice è molto semplice, analizziamolo brevemente. Per quanto riguarda il controllo di zoom e scroll, non facciamo altro che verificare se lo switch è in stato ON e in quel caso abilitiamo la relativa funzione settandola a TRUE, in caso contrario, grazie a FALSE, la funzione cesserà di funzionare. Anche il codice inerente la visualizzazione della propria posizione sulla mappa è molto semplice e non facciamo altro che impostare la proprietà showsUserLocation della mapView a TRUE. L’ultimo medoto, infine, verifica quale pulsante dell’UISegnmentedControl è stato premuto e imposta la visuale corrispondende tramite “MKMapTypeStandard” per la visuale Standard, “MKMapTypeSatellite” per quella dal satellite e “MKMapTypeHybrid” per la visuale ibrida, un mix delle due precedenti.

A questo punto non ci resta che disegnare la nostra interfaccia grafica con Interface Builder ed effettuare i rispettivi collegamenti tra gli oggetti IB e quelli creati via codice da Xcode. Apriamo il file “mappeViewController.xib” e trasciniamo nella View i seguenti oggetti:

  • N. 1 MKMapView
  • N. 2 UISwitch
  • N. 1 UIButton
  • N. 1 UISegmentedControl
  • N. 2 UILabel

Posizioniamoli quindi in modo che la vostra vista sia simile a quella mostrata in figura:


mappeIB

Le impostazioni di default per questi controlli vanno più che bene per questo tutorial. Unica accortezza la proprietà “Segments” dell’UISegmentedControl che dovrete settare a 3 in quanto saranno proprio 3 le scelte selezionabili dall’utente durante l’esecuzione della nostra applicazione. Ricordate inoltre di modificare il testo delle UILabel settandole a “Zoom” e “Scrool”. Settate il testo del pulsante inserendo “Mostra mia posizione” come testo visualizzato e infine inserite, tramite semplice doppio-click, le scritte “Standard”, “Satellite” e “Ibrida” nell’UISegmentedControl.

Ora cliccate su “File’s Owner” e tramite la finestra “Connections” effettuate i rispettivi collegamenti tra gli oggetti IB e quelli creati da codice, come mostrato nella prossima figura:


mappeColl

Ora potete salvare, chiudere Interface Builder e tornare ad Xcode. Cliccate su Build and Run e testate il programmino appena creato su iPhone Simulator o sul vostro dispositivo.


mappeIS

Video Tutorial

by David Pollak


Parte 1


Parte 2

Share this story:
  • tweet

Tags: api google iphonemapkitmappe di googlemkmapviewObjective-cprogrammazionesdkTutorial PraticiXcode

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Microservizi per logiche applicative di grandi dimensioni

    27 Luglio 2016 - 0 Comment
  • Personalizzare i callout di MapKit con SMCalloutView

    22 Gennaio 2016 - 0 Comment
  • Con Xcode 6.3 arriva il Crash Log Organizer

    26 Febbraio 2015 - 0 Comment

Author Description

22 Responses to “T#005 – Usare le mappe di google”

  1. 19 Novembre 2009

    Matte

    come si aggiunge anche la ricerca?

  2. 27 Novembre 2009

    Mat

    Ciao complimenti per il tuo tutorial!!…sapresti spiegarmi come utilizzare le MKAnnotation (per esempio: mettere il Pin (lo spillino rosso che esce su Maps) nella mia posizione)??? thankssss!!

    @ Matte:
    Per la ricerca su google Maps hai bisogno di fare un interrogazione a GoogleMaps; tipo:

    //Unisci in una stringa il comando google Maps insieme al
    //valore che l’utente ha inserito in una textField (nel mio caso adressField.text)

    NSString *myString = [NSString stringWithFormat:@”http://maps.google.com/maps/geo?q=%@&output=csv”, [addressField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    //Memorizzi tutto in un altra stringa
    NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:myString]];

    //Ti crei un’array composto che è composto dai valori della stringa prima creata separati dalla virgola; glli elementi ritornati sono 3: il primo è un volre numerico (200 se la ricerca è andata a buon fine), il secondo contiene la latitudine, il terzo la longitudine.

    NSArray *listItems = [locationString componentsSeparatedByString:@”,”];

    A questo punto hai un’array con la Latit. e la Longit. vedi tu come utilizzarli.

  3. 8 Dicembre 2009

    Angelo

    Scusa ma come fa a funzionare il tasto showuserlocation se non importi il framework location? Comunque le mkAnnotation interessano anke a me!! Grazie!!!

  4. 8 Dicembre 2009

    Gabriele

    Salve a tutti e complimenti per questi tutorial!!
    ho un grande problema con IB e le MKMapView perché, aprendo IB, non esiste all’interno della libreria la MKMapView da trascinare nella vista!
    Ho seguito il tutorial passo passo, importando il framework e il file MapKit.h ma niente… nel codice mi viene “riconosciuta” la mapView e la sua proprietà mapType durante la digitazione, quindi non penso sia un problema di Xcode…
    come posso risolvere?
    IB non dovrebbe automaticamente aggiornare la libreria a seconda degli header inclusi e dei framework aggiunti?

    ps
    durante la build mi da errore “showsUserLocation” in quanto non esiste, nei sorgenti ho trovato “shouldShowUserLocation” che invece compila 😉

    grazie a tutti!!

  5. 10 Dicembre 2009

    angelo

    c’è qualcuno????

  6. 10 Dicembre 2009

    Staff devAPP

    Si ci siamo.. ^^ a breve pubblicheremo la prossima guida sul MapKit..

    (showUserLocation è una proprietà della classe MKMapView inclusa nel framework MapKit)

  7. 17 Dicembre 2009

    angelo

    ok grazie!!
    quando la pubblicherete la prossima guida sul MapKit?

    grazie per le eventuali risposte!!

  8. 17 Dicembre 2009

    Staff devAPP

    Credo nei prossimi giorni sarà online 😉

  9. 5 Febbraio 2010

    Angelo

    Ma la guida?!?:-(( sarebbe stata molto utile:-((

  10. 29 Marzo 2010

    Video Tutorial di programmazione iPhone SDK (in italiano) | devAPP

    […] Con il tutorial di oggi vedremo come usare le mappe di google all’interno delle nostre applicazioni. Il programma che creeremo ci permetterà di visualizzare la mappa di google, scegliere il tipo di visualizzazione mostrata tra standard, satellite o ibrida, abilitare o disabilitare le funzioni di zoom e scroll utilizzabili tramite il multitouch e mostrare la nostra posizione sulla mappa. Tutto ciò è reso possibile grazie Framework MapKit, che dovremo ovviamente aggiungere al nostro progetto. (visualizza l’articolo completo) […]

  11. 9 Aprile 2010

    MatteoApple

    Per fare lo zoom sulle mappe ci sono due modi:

     – Fare doppio clic sulla mappa;
     – Tenere premuto il tasto “alt”, in moda da fare mostrare due puntini sullo schermo, che sono paragonabili alle nostra dita.

    Spero di esservi stato d’aiuto.

  12. 10 Giugno 2010

    hetabeta

    Salve a tutti, premesso che non ho mai scritto una riga di codice per iphone vorrei porvi una domanda: se viene fatta un’app con la mappa (come indicato nel tutorial) per utilizzarla occorre necessariamente una connessione a internet oppure c’è un modo di distribuire la mappa (o una sua parte) per poterla utilizzare offline?
    Grazie

  13. 8 Ottobre 2010

    devAPP – Tutorial Set #1 - iPhone Italia – Il blog italiano sull'Apple iPhone 4, iPhone 3GS e 3G

    […] (Vai al tutorial completo) […]

  14. 8 Ottobre 2010

    » devAPP – Tutorial Set #1

    […] (Vai al tutorial completo) […]

  15. 21 Ottobre 2010

    Gabriele

    @Hetabeta per l’argomento trattato in questo tutorial (ovvero GoogleMaps) la risposta alla tua domanda è No.

    Ad ogni modo la guida promessa non è ancora stata pubblicata, ci sono speranze ?
    Grazie in anticipo.

  16. 7 Dicembre 2010

    Acar83

    Ciao! E’ se volessi usare una mappa google personalizzata? Come quelle di My Maps o ancor meglio quelle di Google Places?

    Questo è il miglior sito del settore!

  17. 10 Maggio 2011

    MaveDev

    Funziona perfettamente, grazie per il tutorial, sempre grandi!!

  18. 31 Agosto 2011

    yes77

    Ciao
    vorrei associare alla pressione del pulsante “trova mia posizione” l’animazione di zoom sulla posizione potendo decidere il longitudeDelta e latitudeDelta.
    Ho provato ma lo zoom mi funziona solo la prima volta, se mi sposto nella mappa e ripremo il pulsante non ritorna più sulla mia posizione. qualche consiglio per favore?

  19. 15 Novembre 2012

    Gio88

    Ciao,
    ho implementato la mappa nella mia app. , ma non riesco a capire come mai usando il metodo showUserLocation la mappa mi porta a Cupertino e non dove sono realmente io ? Eppure ho eseguito la procedura passo passo e tutto il resto funziona perfettamente 🙁

  20. 22 Marzo 2013

    iJim

    Ciao, ho seguito il tutorial, ho creato un app con 3 viste, una Home e due viste.
    Nella Home ci sono due tasti e quando clicco sul tasto per la vista 1 va tutto bene, quando invece clicco sulla vista dove ho creato la mappa ( seguendo il tutorial ) l’app crasha !!!!!

  21. 14 Maggio 2013

    Amedeo

    Ciao, innanzitutto complimenti per la guida, ottima come sempre. Volevo sapere come posso fare per far uscire le coordinate della mia posizione su un Label. Grazie.

  22. 22 Maggio 2013

    ema

    Ciao, grazie per il tutorial.
    Mi pare di aver seguito tutti i passaggi e testando la mia app sul mio iphone funziona e non da errori. La mappa mi mostra la mia posizione, ma a un livello di zoom troppo basso, praticamente mi fa vedere l’Italia intera.

    Suggerimenti?
    Grazie

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO