La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT M APPE.

Presentazioni simili


Presentazione sul tema: "* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT M APPE."— Transcript della presentazione:

1 * R AMAN K AZHAMIAKIN O SCAR Z AMBOTTI @oskarnrk G IOVANNI D E F RANCESCO @jibbolus @ ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT M APPE

2 * * 1.MapFragment 2.Markers 3.MarkersDialog (infoWindow) 4.GPS 5.Tiles 6.Usare le tile di OperStreetMap Sommario

3 * *

4 * * InfoWindows, custom InfoWindows...

5 * * My position, custom markers, polylines, clusters...

6 * * Preparazione Installare i Google Play Services SDK ●Lanciare Android SDK Manager: cliccare Window > Android SDK Manager oppure ●Installare i Google Play services: scorrere fino in fondo la lista dei pacchetti, espandere Extras, scegliere Google Play services e installarli. ●Importare la libreria: Cliccare File > Import, scegliere Android > Existing Android Code into Workspace, cercare il progetto della libreria e importarla. Il percorso è /extras/google/google_play_services/libproject/google-play-services_lib/ Suggerimento: procedimento simile a come abbiamo importato appcompat!

7 * * Preparazione #2 Aggiungere i Google Play services al manifest Modificare il file AndroidManifest.xml e aggiungere la dichiarazione all’elemento. Questo include la versione di Google Play services. <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

8 * * Preparazione #3 Per usare i server di Google Maps bisogna aggiungere una Maps API key all’app. La key è gratis, puoi usarla in qualsiasi tua applicazione e supporta infiniti utenti. È possibile ottenere la Maps API key dalla Google APIs Console fornendo il certificato con cui si “firma” l’app e il nome package. Ottenere la key richiede diversi passaggi: 1.Ottenere le informazioni del certificato dell’app 2.Registrare il progetto nella Google APIs Console e aggiungere le Maps API come servizio per il progetto 3.Richiedere una key o più 4.Aggiungere la key all’app e… iniziare a sviluppare! https://developers.google.com/maps/documentation/android/start

9 * * Preparazione: certificato La Maps API key si basa su una breve stringa rappresentante il certificato digitale con cui viene firmata l’app, il SHA-1 fingerprint, che è unica e quindi usata per identificare la tua app. Ci sono due certificati: Debug certificate: generato dagli Android SDK tools quando si fa debug o si lancia l’app da Eclipse ad esempio. Da usare solo in testing! Release certificate: generato dagli Android SDK tools quando si esporta il file.apk per rilasciare l’app; si genera usando il programma keytool.

10 * * ●Cerchiamo il file debug.keystore: cercare la posizione cliccando Windows > Prefs > Android > Build. ●Se già in quelle opzioni non trovate la voce “SHA-1 fingerprint” usare il comando keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android ●Si ottiene l’output: Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9SHA1: 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 Preparazione: ottieni SHA-1 fingerprint da debug

11 * * ●Andare alla Google APIs Consolehttps://code.google.com/apis/console/https://code.google.com/apis/console/ ●Creare un nuovo progetto ●Tra i servizi attivare Google Maps Android API v2 ●Selezionare API Access > Create New Android Key… ●Inserire la stringa fingerprint;package, es.: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.exa mple.android.mapexample ●Si ottiene una stringa simile a: AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0 Preparazione: Google APIs Console

12 * * Nel AndroidManifest.xml, subito prima del tag di chiusura, inserire: Preparazione: aggiungi la key al progetto <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="API_KEY"/> dove API_KEY è la stringa ottenuta dalla console: AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

13 * * Preparazione: aggiungi i giusti permessi Aggiungo i permessi e la richiesta di uso delle OpenGL ES versione 2.

14 * * Preparazione: il fragment con la mappa Nel layout inserire il fragment in questa maniera (notare android:name)

15 * * Habemus Google Maps!

16 * * Markers Un marker è un icona visibile ad una certa posizione sulla mappa. Proprietà: Alpha - opacità Title - il titolo Snippet - la Descrizione Icon - Un’immagine che lo rappresenta Draggable - flag che indica se il marker è trascinabile Visible - nasconde o mostra il marker

17 * * mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Hello world!")); Aggiungere un Marker

18 * * Custom MarkerDialog (InfoWindow) Possiamo scegliere di cambiare il fumetto che appare al click di un marker, per farlo dobbiamo: 1.implementare InfoWindowAdapter 1.getInfoWindow(Marker) viene sempre chiamato, cambia l’intero fumetto 2. getInfoContents(Marker) viene chiamato solo se il metodo precedente ritorna null. cambia solo il contenuto del fumetto. 2.chiamare il metodo.setInfoWindowAdapter(nostroAdapter) mMap.setInfoWindowAdapter(this).

19 * * Esempio di InfoWindowAdapter Personalizzato class MyInfoWindowAdapter implements InfoWindowAdapter { private final View mymarkerview; public MyInfoWindowAdapter() { mymarkerview = getLayoutInflater().inflate(R.layout.qualcosa, null,false); } public View getInfoWindow(Marker marker) { return mymarkerview; } public View getInfoContents(Marker marker) { return null; }

20 * * Ulteriori cose da sapere: ●Per cambiare il comportamento quando un fumetto viene tappato: ○ mMap.setOnInfoWindowClickListener(OnInfoWindowClickListe ner) Maggiori info al link: https://developer.android.com/reference/com/google/android/gms/map s/GoogleMap.OnInfoWindowClickListener.html https://developer.android.com/reference/com/google/android/gms/map s/GoogleMap.OnInfoWindowClickListener.html ●Per muovere la mappa, programmaticamente: ○mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat, long))); Tutte le opzioni disponibili su: https://developer.android.com/reference/com/google/android/gms/ maps/CameraUpdateFactory.html ●Tutto il resto su: https://developers.google.com/maps/documentation/android/ https://developers.google.com/maps/documentation/android/

21 * * Conquistare il mondo... E adesso siete pronti per...

22 * * Localizzazione È possibile utilizzare il GPS e l’Android Network Location Provider per acquisire la posizione dell'utente. Anche se il GPS è più preciso, funziona solo all'aperto, consuma rapidamente la batteria e non restituisce la posizione velocemente. L’Android Network Location Provider determina la posizione dell'utente utilizzando le celle dei ripetitori, le reti Wi-Fi, risponde più velocemente e utilizza meno energia. Si può utilizzare sia il GPS e il Network Location Provider, o solo uno. Sono necessari questi permessi:

23 * * Localizzazione #2 // Ottengo una referenza al Location Manager del sistema LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // Definisco un LocationListener che reagisce agli aggiornamenti della location LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { // Chiamato quando una nuova location è trovata faiQualcosaConLaNuovaLocation(location); } public void onStatusChanged(String provider, int status, Bundle extras) {} public void onProviderEnabled(String provider) {} public void onProviderDisabled(String provider) {} }; // Iscrivi il listener al Location Manager per avere gli aggiornamenti locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

24 * * Localizzazione #3 // In attesa ottieni l’ultima posizione conosciuta String locationProvider = LocationManager.NETWORK_PROVIDER; // oppure LocationManager.GPS_PROVIDER Location lastKnownLocation = locationManager.getLastKnownLocation(locationProvider); // Rimuovi il listener locationManager.removeUpdates(locationListener);

25 * * Cambiare le tile mMap.setMapType(GoogleMap.MAP_TYPE_NONE); TileProvider tileProvider = new UrlTileProvider(256, 256) { @Override public URL getTileUrl(int x, int y, int z) { try { String url = “ http://otile1.mqcdn.com/tiles/1.0.0/osm/%d/%d/%d.jpg ”; return new URL(String.format(url, z, x, y)); } catch (MalformedURLException e) { return null; } }; mMap.addTileOverlay(new TileOverlayOptions().tileProvider(tileProvider));


Scaricare ppt "* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT M APPE."

Presentazioni simili


Annunci Google