Android. Google Maps v2.

Documenti analoghi
@ ITT M. BUONARROTI, TRENTO ANDROID DEVELOPMENT MAPPE. RAMAN KAZHAMIAKIN OSCAR GIOVANNI DE

Sistemi Mobili e Wireless Android Localizzazione utente

Corso di programmazione di sistemi mobile 1. Android. Android Style, Material Design, Google Services

Android. Location, Maps, Servizi di Sistema

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Android. Android01: Introduzione alle Activity.

ProgettAzione tecnologie in movimento - V anno Unità 4 - Applicazioni per i sistemi mobili

Lezione 15 Location e mappe

Corso di programmazione di sistemi mobile 1. Android. Architettura, ambiente di sviluppo e struttura di un progetto

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

Android. Deploy di una App.

Corso di programmazione

Università di Ferrara Facoltà di Ingegneria. Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Android Material. Toolbar, FAB buttons, Dailogs

La geolocalizzazione

Tale attività non è descritta in questa dispensa

Tecniche di progettazione e sviluppo di applicazioni mobile

Android. Custom View.

STUDIO E IMPLEMENTAZIONE DI COMPONENTI SOFTWARE PER PIATTAFORMA MOBILE ANDROID

INTRODUZIONE ALLE PIATTAFORME

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

Corso di programmazione di sistemi mobile 1. Android Laboratorio. Activity, ListView e Adapter

@ ITT M. BUONARROTI, TRENTO ANDROID DEVELOPMENT UI PERSONALIZZATE E MENU. RAMAN KAZHAMIAKIN OSCAR GIOVANNI DE

2 Lavorare con Eclipse

Indice generale. Prefazione...xiii. Introduzione...xv. Android e Java per Android...1

In-app billing per comuni mortali puntata 1

Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE

Volontari. OruxMaps. Antincendio Boschivo e Protezione. Luglio 2016 Civile di Trieste

SHAREPOINT CONNECTOR PLUG-IN - short guide-

@ ITT M. BUONARROTI, TRENTO ANDROID DEVELOPMENT ELEMENTI BASE. RAMAN KAZHAMIAKIN OSCAR GIOVANNI DE

PROCEDURA DI INSTALLAZIONE E ATTIVAZIONE DI DARWEB PRO versione 1.0

Guida alla stampa e alla scansione per dispositivi mobili per Brother iprint&scan (Android )

Procedura di inserimento automatico

Nuove pagine e collegamenti

SEE Electrical Expert V4: FAQ

Android lezione 9 Le listview

CREAZIONE DI UNA CARTELLA

Cosa è importante: pom.xml Goal Plug-in Repository

Mobile Programming. Prova scritta del 28/01/2015. Prof. De Prisco. Corso di laurea in Informatica

L ambiente di sviluppo Android Studio

Guida i-help App. IOS

Ingegneria del Software 1: Eclipse

Programmazione in ambiente

Le Apps di Google a scuola

Schermata principale

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

Sommario. 1. Internet subito Le FAQ di Internet 13. Sommario vii

Importare i contenuti

SISTEMA GESTIONE TOMBINI

WebDisk. TeamPortal - WebDisk

Configurazione di Eclipse con Liferay 5.2.2/6.0.6/6.1.0 Mac/Linux

Esercitazione Google Maps

Funzioni Principali dell APP ENTR

MotionX: COME UTILIZZARLO, MARCARE I PUNTI E INVIARLI

Installazione dell SDK sotto Windows

Mobile Programming. Prova scritta del 05/02/2016. Prof. De Prisco. Corso di laurea in Informatica

Localizzazione geografica

Università di Ferrara Facoltà di Ingegneria. Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Introduzione a Visual Studio 2005

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola GPS Functionality

Orcad Capture è un potente ambiente di disegno elettronico. Esploriamo alcune delle

I N S T A L L A Z I O N E D I M I S T R A L L A T O C L I E N T

COME RAGGIUNGERE LA CENA CAUBOI

Università di Ferrara. Facoltà di Ingegneria. Esercitazioni di

DMX LIGHTPLAYER Introduzione...2 Libreria DMX...3 Programmazione dei canali...7 Creazione di uno show...11

Alessio Mandato. Scopo di questo documento è illustrare come installare e configurare in modo appropriato la nuova versione del client Goolink.

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura

PROCEDURA PER L INSTALLAZIONE DEL CLIENT AFS PER

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Imagicle Hotel. Guida alla configurazione delle centrali Avaya IP Office con Kit configuration service

Utilizzo delle Maschere in Microsoft Access

WEBSIT-G BANCHEDATI E MAPPE DELLA CITTA METROPOLITANA DI MILANO

Cabel.

Versione 3.0. a cura di Claudia Cavicchi Biblioteca Clinica F.Bianchi Università di Bologna

Plugin di integrazione con il CMS Joomla

Creare un ombra suggestiva

Manuale d uso Gestionale NOVACAF

I POI. Possiamo scaricarli da siti web dedicati, utilizzare quelli inseriti nelle nostre mappe o aggiungerne di personali.

INTERNET Ing. Giovanni Pozzi

1 JSPDynPage, componenti portale e Java Server Pages

Corso di Cmap Tools. 5-Lavorare con le risorse

Download applicazione LOCUS

Guida alla connessione

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

Come installare un nuovo account di posta elettronica in Outlook 2010

ArubaKey Installazione Versione 2

Mobile Programming. Prova scritta del 07/04/2016. Prof. De Prisco. Corso di laurea in Informatica

Lezione 1 Primi passi con Android

[AD.AGIO] ANDROID SDK

Acquisire audio digitale: per iniziare...

Servizi della biblioteca. Accedere alle risorse elettroniche da fuori rete Unimore

Si accede alla piattaforma digitando nel browser l indirizzo: dopo di chè si apre la seguente pagina,

Cloud Hik-Connect. Guida rapida per registrare un dispositivo su Hik-Connect

CREAZIONE DI UNA CARTELLA

INTERNET Ing. Giovanni Pozzi

Autodesk Map parte I digitalizzazione e importazione dati

Programmazione Android. Giovanni Perbellini Università di Verona EDALab S.r.l.

Istruzioni per accedere al caricamento dati del sito web nazionale dei MdL

Questo comando permette di riportare la mappa al livello di zoom e alle coordinate iniziali predefinite. Utilizzo: cliccare sul pulsante.

Transcript:

Android Google Maps v2 diegozabot@yahoo.it

Uso delle mappe Google v2 (1) Per poter utilizzare le mappe di Google v2 bisogna prima di tutto ottenere una API map key registrandosi sulla console delle api di Google. E' importante ricordare che Android utilizza due chiavi per riconoscere la paternità del software: una da utilizzare in fase di debug (assegnata direttamente da Eclipse) e una per la produzione effettiva (vedi capitolo sul deploy).

Uso delle mappe Google v2 (2) Di conseguenza anche per l'utilizzo delle mappe avremo due differenti map API key: una per il debug e una per la release. Per testare una applicazione con le mappe ci serve ottenere dalla console delle API di Google una map API key di debug, mediante il codice SHA-1 ottenuto dal debug.keystore. Per caricare l'applicazione nel Google Play ci servirà ottenere dalla console delle API di Google una map API key di release, mediante il codice SHA-1 ottenuto dalla release. keystore.

Ottenere una API map key (1) Passaggi: 1. ritrovare il debug.keystore 2. ottenere il codice SHA-1 3. iscriversi alla console delle API di Google 4. ottenere la API map key SDK minimo: 8 (2.2)!Attenzione! Le chiavi generate per la versione 1 delle mappe non sono valide per la versione 2

Ottenere una API map key (2) 1. ritrovare il debug.keystore In eclipse andare sul menu Window > Preferences Sotto il menu Android > Build osservare dove si trova il debug. keystore (solitamente si trova nella directory.android sotto la cartella utente)

Ottenere una API map key (3) 2. ottenere il codice SHA-1 Entrare in una finestra dos (cmd) e spostarsi nella cartella dove si trova il debug.keystore Eseguire il comando*: keytool -list -v -keystore debug.keystore -alias androiddebugkey storepass android -keypass android Notare il codice SHA-1 e copiarlo. Importante: questo è il codice SHA-1 di debug. * Se non parte il comando keytool, aggiungere alla path il percorso a java/jdk/bin

Ottenere una API map key (4) 3. iscriversi alla console delle API di Google Andare nella console delle API di Google e accedere con il proprio account Google: code.google.com/apis/console Creare un nuovo progetto Nella finestra API s attivare (on) il servizio Google Maps Android V2 e accettare la conseguente licenza d'uso

Ottenere una API map key (5) 4. ottenere la API map key Nella finestra Credentials creare un new Android Key: verrà richiesto il codice SHA-1 seguito dal package del progetto che utilizzerà le mappe* separato da un punto e virgola. Esempio: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.mappe Otterrete la vostra Android key di debug che comincia con le lettere AIzaSy... N.B. per ottenere una Android key di release procedere come sopra ma ottenendo il codice SHA-1 dalla release.keystore. *questo comporta che ogni progetto che utilizzi le mappe deve avere una nuova map API key

Applicazione con mappa (1) Una volta ottenuta la map API key creiamo una applicazione con le mappe: Procedimento: 1. scaricare il pacchetto Google play services SDK 2. importare la libreria nei progetti di Eclipse 3. creare una applicazione con le mappe 4. modificare il manifest 5. aggiungere un MapFragment mappa al layout 6. richiamare da codice la mappa

Applicazione con mappa (2) 1. scaricare il pacchetto Google play services SDK Le mappe sono comprese nei servizi di Google Play, quindi bisogna scaricare tale pacchetto. In Eclipse richiamare SDK manager (Window > Android SDK manager) e nella sezione Extras, scaricare Google Play services.

Applicazione con mappa (3) 2. importare la libreria nei progetti di Eclipse Prima di creare una applicazione che utilizzi le mappe dobbiamo importare nei progetti di Eclipse la libreria delle mappe: Android - File > Import > Existing Android Code Into Workspace arrivare fino alla cartella di installazione di android, selezionare la libreria che si trova in: androidsdk/extras/google/google_play_services/libproject/googleplay-services_lib attivare la copia nel workspace e importare la libreria.

Applicazione con mappa (4) 3. creare una applicazione con le mappe Creare una nuova applicazione android (ricordarsi del package con il quale si è creata la API key) Nelle proprietà del progetto (File > Properites > Android) indicare l utilizzo della libreria google-play-services_lib (Nello spazio Library utilizzare il pulsante add )

Applicazione con mappa (5) 4. modificare il manifest Nel manifest inserire i seguenti permessi prima del tag <application>: <permission android:name="com.example.mappe.permission.maps_receive" android:protectionlevel=" signature"></permission> <uses-permission android:name="com.example.mappe.permission.maps_receive"/> <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices"/> <uses-permission android:name="android.permission.access_coarse_location" /> <uses-permission android:name="android.permission.access_fine_location" />

Applicazione con mappa (6) Nel manifest inserire anche i seguenti permessi Uso del opengl 2 per la grafica: <uses-feature android:glesversion="0x00020000" android:required="true"/> La map API key e la vesione del gms di google, dopo la chiusura di activity e prima di quella di application:... </activity> <meta-data android:name="com.google.android.maps.v2.api_key" android:value="aizasy****************************************"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> </application>

Applicazione con mappa (7) 5. aggiungere un MapFragment mappa al layout Se il MapFragment occupa l'intera view utilizzare direttamente il fragment come layout principale. I MapFragment sono stati introdotti dalla versione 12 delle API. Nel caso volessimo sviluppare anche per versioni precedenti ci viene in soccorso la classe SupportFragment. Di seguito svilupperemo per entrambi i casi.

Applicazione con mappa (8) 5a. aggiungere un MapFragment mappa al layout ( API >= 12 ) Nell'xml dobbiamo avere un Fragment di tipo MapFragment. <?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.mapfragment"/>

Applicazione con mappa (9) 6a. richiamare da codice la mappa ( API >= 12 ) La MainActivity deriva da una normale Activity: public class MainActivity extends Activity { E per ottenere la mappa di classe GoogleMap si ricava con getfragmentmanager un oggetto castato a MapFragment. Il metodo getmap ritorna la mappa: private GoogleMap map; map=((mapfragment)getfragmentmanager().findfragmentbyid(r.id.map)).getmap();

Applicazione con mappa (10) 5b. aggiungere un MapFragment mappa al layout ( API < 12 ) Nell'xml dobbiamo avere un Fragment di tipo SupportMapFragment. <?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.supportmapfragment"/>

Applicazione con mappa (11) 6b. richiamare da codice la mappa ( API < 12 ) La MainActivity deriva da una FragmentActivity: public class MainActivity extends FragmentActivity { E per ottenere la mappa di clase GoogleMap si ricava con getsupportfragmentmanager un oggetto castato a SupportMapFragment. Il metodo getmap ritorna la mappa: private GoogleMap map; map=((supportmapfragment)getsupportfragmentmanager().findfragmentbyid(r.id.map)).getmap();

Posizionamento (1) Con qualsiasi SDK poi proseguiamo a creare delle costanti di riferimento di classe LatLng*: static final LatLng TRIESTE = new LatLng(45.636111, 13.804167); e dopo aver ottenuto la mappa utilizziamo il metodo movecamera map.movecamera( CameraUpdateFactory.newLatLngZoom(TRIESTE, 10)); TRIESTE è la posizione e 10 il valore di zoom. *Google maps e http://www.sunearthtools.com/dp/tools/conversion.php?lang=it per coordinate e conversione

Posizionamento (2) Mettendo tutto assieme (SDK >= 12): public class MainActivity extends Activity { static final LatLng TRIESTE = new LatLng(45.636111, 13.804167); private GoogleMap map; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); map=((mapfragment)getfragmentmanager(). findfragmentbyid(r.id.map)).getmap(); map.movecamera(cameraupdatefactory.newlatlngzoom(trieste, 10)); } }

Posizionamento (3) Mettendo tutto assieme (SDK < 12): public class MainActivity extends FragmentActivity { static final LatLng TRIESTE = new LatLng(45.636111, 13.804167); private GoogleMap map; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); map=((supportmapfragment)getsupportfragmentmanager(). findfragmentbyid(r.id.map)).getmap(); map.movecamera(cameraupdatefactory.newlatlngzoom(trieste, 10)); } }

Segnaposto Possiamo utilizzare il metodo addmarker per impostare un segnaposto sulla mappa: map.addmarker(new MarkerOptions().title("Trieste").snippet("Abitanti: 209.023").position(TRIESTE)); possiamo anche cambiare il segnaposto standard con uno custom aggiungendo alla dichiarazione di MarkerOption il metodo :.icon(bitmapdescriptorfactory.fromresource( R.drawable.bandiera))

Tipi di mappe Mediante il metodo setmaptype della classe GoogleMap posso decidere la tipologia di mappa. Posso scegliere tra: GoogleMap.MAP_TYPE_NONE GoogleMap.MAP_TYPE_NORMAL GoogleMap.MAP_TYPE_SATELLITE GoogleMap.MAP_TYPE_TERRAIN GoogleMap.MAP_TYPE_HYBRID nessuna mappa mappa stradale tipica mappa con foto satellite, senza strade ne etichette mappa topografica fotografie satellitari con strade ed etichette Esempio: map.setmaptype(googlemap.map_type_hybrid);