Introduzione al MapKit. Le Mappe su iPhone

MapKit è davvero una semplice e pulita API disponibile su iPhone e iPad che rende semplice la visualizzazione di mappe, saltare a coordinate e persino disegnare percorsi verso una destinazione.

Scrivo questa guida in quanto ho avuto modo di studiare approfonditamente il MapKit durante lo sviluppo di ParkYou (disponibile su AppStore) ma in questo tutorial inizieremo dalle basi.

Stiamo per creare un applicazione che aggiunge una mappa powered by Google nella nostra view e fa uno zoom in un particolare luogo.
Inizieremo a parlare di “Delegate” e funzioni fino a creare una vera e propria applicazione da far vedere agli amici quindi se non avete dimestichezza con le basi di Xcode vi consiglio di seguire qualche tutoria precedente.

Useremo Xcode 4 quindi se siete ancora indecisi se aggiornare o no… fatelo.

Iniziamo

Creiamo un nuovo progetto di tipo View-based application e lo chiamiamo “Mappe”, salviamolo dove ci pare.

Clicchiamo sul file MappeViewController.xib per aprire Interface Builder che in Xcode 4 è integrato perfettamente, ed inseriamo dalla libreria degli oggetti una “MapView” nel centro ed una toolbar in basso col pulsantino.

Poi, clicchiamo sulla MapView aggiunta e selezioniamo il quarto tab dell’inspector per aprire gli attributi dell’oggetto. Selezioniamo il checkbox “Show User Location”.

Quasi fatto, ma prima di poter vedere qualcosa bisogna aggiungere il framework “MapKit” al progetto (oppure l’applicazioni si chiuder subito!); per farlo con Xcode 4 bisogna cliccare sul nome del progetto in Groups & Files, selezioniamo il target Mappe e spostiamoci nel tab “Build Phases”. Sotto la voce “Link Binary with Libraries” clicca sul pulsante “+” e selezioniamo MapKit.framework, aggiungilo.

Adesso se compiliamo e avviamo il nostro progetto avremo una mappa completamente zoomabile e scorrevole che mostra la nostra posizione oppure una a scelta se siamo sul simulatore

Bello vero? Ma certamente non vogliamo una mappa che mostri il mondo intero quindi iniziamo ad aggiungere un po di codice per personalizzarla.

Continua a leggere il tutorial…. QUI

Related Posts

iOS Continuos Integration con Xcode 9

Come creare un framework in swift

iOS 9: UIStackView

iOS8: HealtKit Framework

  • Pingback: Come creare un bottone con forma circolare | iProg()

  • Pingback: PickerView: la scelta multipla e i delegate | iProg()

  • Ulix

    Tutorial interessante ma purtroppo con xCode 5 Beta (iOS 7) mi da

    4 errori in MapViewController.m

    Qualche soluzione?
    —————————–
    MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.5* QUI -> METERS_PER _MILE, 0.5* METERS_PER _MILE);

    // 3

    Qui -> MKCoordinateRegionadjustedRegion = [ Qui ->_mapViewregionThatFits:viewRegion];

    // 4

    [ Qui -> _mapView setRegion:adjustedRegionanimated:YES];

    ———————————–

    • iOS 7 è ancora beta sotto NDA…è ovvio che non tutto funziona ancora. Prova con iOS 6 o precedenti e tutto funzionerà. Il tutorial sarà aggiornato quando iOS7 sarà rilasciato al pubblico.

      • Ulix

        Ho provato anche con Xcode 4.6.2 ma gli errori sussistono
        In pratica succede questo:

        Nel file MapViewController.h
        gli errori sono:

        – Use of undeclared identifier ‘_MILE1609’
        – Use of undeclared identifier ‘_mapViewRegionThatFits’
        – Use of undeclared identifier ‘MXCoordinateRegionadjustedRegion’

        – Use of undeclared identifier ‘adjusteRegionanimated’

        Ora sto ricontrollando se è tutto a posto o se ho sbagliato qualcosa

        • Ulix

          Scusa se ti rompo, ma sistemando spazi e a capo ho ridotto apparentemente ad un solo errore, che si verifica nella riga del RIF 2

          Questo l’errore:
          Use of undeclared identifier ‘METERS_PER_MILE’

          e questa la riga (tutto sulla stessa riga)
          MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation,0.5*METERS_PER_MILE,0.5*METERS_PER_MILE);

          • beh ma è ovvio… è una costante che probabilmente non hai dichiarato nel file .h…. al termine della pagina trovi tutto.

          • Ulix

            Se ti riferisci ai pulsanti e al simbolo grafico, alla fine della pagina non ho trovato nulla

          • la guida continua qui… http://www.iprog.it/store/17-l-a.html

          • Ulix

            La guida l’ho già scaricata e vista e con un po’ di ragionamento ho sistemato quasi tutto, (pin e annotation del luogo desiderato, refresh della mappa, setmap,,,)
            Ma ho ancora due punti da risolvere:
            1- Inserendo il pin del luogo, è sparito il punto lampeggiante della posizione.
            2- Con un tasto vorrei far partire l’APP Map di Apple passando le coordinate di destinazione e posizione attuale, così da poter utilizzare calcola percorso e eventualmente Turn by Turn per le devices abilitate
            Hai qualche idea?

          • Ulix

            Ora funziona bene (anche con xCode 5 Beta)
            L’unico difetto è che si posiziona nel punto esatto ma non crea nessuno elemento grafico che indica la posizione

            Ultima cosa.
            Visto che correttamente chiede di poter utilizzare la propria posizione
            E’ possibile abilitare i pulsanti (mappa /satellite / ibrida) e Crea percorso?

Si prega di attivare i Javascript! / Please turn on Javascript!

Javaskripta ko calu karem! / Bitte schalten Sie Javascript!

S'il vous plaît activer Javascript! / Por favor, active Javascript!

Qing dakai JavaScript! / Qing dakai JavaScript!

Пожалуйста включите JavaScript! / Silakan aktifkan Javascript!