Lab 3: Google Maps API - Matteo...

Post on 22-May-2020

7 views 0 download

Transcript of Lab 3: Google Maps API - Matteo...

1

Matteo Camilli

matteo.camilli@unimi.ithttp://camilli.di.unimi.it

a.a. 2014/15

Lab 3: Google Maps API

Università degli Studi di Bergamo Dipartimento di Ingegneria

Google Maps Android API v2

2

• Getting started:• https://developers.google.com/maps/documentation/android/

start#getting_the_google_maps_android_api_v2

Importare progetto in eclipse

3

• Per poter utilizzare le Google Maps API v2 occorre:• Google Play Service Library• Android Support Library

Android����������� ������������������  SDK����������� ������������������  manager

Android Support Library

4

• Si trova nella dir:• <adt-sdk-folder>/sdk/extras/android/support/v13/android-support-v13.jar

copiare����������� ������������������  jar����������� ������������������  nella����������� ������������������  dir����������� ������������������  /libs

Google Play Service Library

5

• Select New > Android > Android Project from Existing Code and click Next.• Select Browse..., enter

<android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib, and click Finish.

controllare����������� ������������������  che����������� ������������������  sia����������� ������������������  selezionato

6

Google Play Service Library

• Importare google-play-services_lib project come libreria

aggiungere����������� ������������������  tramite����������� ������������������  add

Android certificate and the Google Maps API key

7

1) Recuperare SHA-1 fingerprint sul certificato della vostra App.2) Registrare un progetto nella Google APIs Console e aggiungere le Maps API

come service per il progetto.3) Richiedere una o più chiavi.4) Aggiungere la chiave nel Manifest dell’App.

• https://developers.google.com/maps/documentation/android/start#the_google_maps_api_key

Android certificate

8

• Ogni App Android, per essere installata su dispositivo o emulatore deve avere associato un certificato digitale che identifica lo sviluppatore.

• Quando sviluppate un’App con eclipse viene associato un certificato di Debug.• Il certificato di Debug si chiama debug.keystore, e viene creato di default nella

directory:• OS X and Linux: ~/.android/• Windows Vista and Windows 7: C:\Users\your_user_name\.android\

9

Android certificate

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

• List the SHA-1 fingerprint:

Alias name: androiddebugkey Creation date: Jan 01, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4aa9b300 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033 Certificate fingerprints:      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9      SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75      Signature algorithm name: SHA1withRSA      Version: 3

• Risultato:

Create an API project in the Google APIs Console

10

1) Andare all’indirizzo: https://console.developers.google.com2) Creare un API Project3) Selezionare APIs & auth > APIs nel menu di sinistra4) Impostare ON su Google Maps Android API v2

11

Create an API project in the Google APIs Console

5) Selezionare Credentials nel menu di sinistra e registrate la vostra app selezionando Create new key > Android key. Inserire SHA1 fingerprint e package name dell’App.

12

6) La console vi risponde con la chiave associata alla vostra app, es:

AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

7) Nel Manifest della vostra app, come figlio dell’elemento <application> inserire:

<meta-data    android:name="com.google.android.maps.v2.API_KEY"    android:value="API_KEY"/>

8) Sostituire API_KEY con la vostra chiave.

<meta-data    android:name="com.google.android.maps.v2.API_KEY"    android:value="AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0"/>

Create an API project in the Google APIs Console

13

• REpresentational State Transfer• Insieme di principi di architetture di rete, i quali delineano come le risorse sono definite

e indirizzate.Utilizza i metodi HTTP (GET, POST, PUT, DELETE) per eseguire una serie di operazioni e consentire l’interazione client-server.

• Un API REST è un insieme di operazioni che possono essere invocate utilizzando l’URI richiamato come parametro/i per la specifica operazione. • ESEMPIO: se vogliamo un servizio che ci fornisca la lista degli utenti del sistema,

possiamo fare HTTP GET dell’URI miaApp/users/all, Il parametro ‘all’ dice alla nostra applicazione che deve fornire la lista di tutti gli utenti.

• ESEMPIO: Servizio che fornisce i dati sulle stazioni del servizio di bike sharing bikeMi: http://api.citybik.es/bikemi.json

• Libreria Java per utilizzare servizi REST (anche su Android)• RETROFIT http://square.github.io/retrofit/

REST Services

14

JSON

• JavaScript Object Notation, è un formato adatto per lo scambio dei dati in applicazioni client-server.

• I tipi di dati supportati da questo formato sono:• booleani (true e false);• interi, reali, virgola mobile;• stringhe racchiuse da doppi apici ( " );• array (sequenze ordinate di valori, separati da virgole e racchiusi in parentesi quadre [ ] );• array associativi (sequenze coppie chiave-valore separate da virgole racchiuse in parentesi graffe);• null.

• Esempio:{ "type": “menu", "value": "File", "items": [ {"value": "New", "action": "CreateNewDoc"}, {"value": "Open", "action": "OpenDoc"}, {"value": "Close", "action": “CloseDoc"} ] }

15

JSON

• Generate Plain Old Java Objects from JSON:• http://www.jsonschema2pojo.org/

• Tramite la libreria Retrofit, possiamo eseguire richieste al server per ricevere i dati in formato JSON e convertirli automaticamente in formato POJO.

Esempio: bikeMe

16

Esempio: bikeMe

17

Modalità “a piedi” Modalità “in bici” vista satellite

Esercizio

18

1. Partendo dall’applicazione SimpleMap, visualizzare sulla mappa la posizione di tutte le stazioni del bikeMi.

2. Al tap su una stazione visualizzare le informazioni su:• nome stazione, numero stalli, numero bici

3. Visualizzare i marker con colori diversi a seconda del numero di bici disponibili:• 0 bici: Rosso• Tra 1 e 3 bici: Giallo• Maggiore di 3 bici: Verde

4. Creare un pulsante per eseguire il refresh delle stazioni5.Creare un pulsante per eseguire il cambio di modalità:• Modalità a piedi: come prima• Modalità in bici: i colori delle stazioni cambiano in base agli stalli disponibili (non più

in base alle bici disponibili)