HomeAndroidGuida: come creare una progetto Android usando le Android Maps V2

Guida: come creare una progetto Android usando le Android Maps V2

android-sdkOoooook, ragazzi,

questa sera, per inaugurare il mio arrivo tra i collaboratori di WebInBlack.net, ho deciso di spiegarvi come creare un progetto Android usando leย Google Maps API V2.
Riporto il tutto da un mio vecchio articolo vista la mancanza di tempo in questo periodo, ma sono certo che, se avete avuto i miei stessi problemi, sicuramente apprezzerete le soluzioni che vi sto per indicare. O al piรน direte “giร  fatto”.
Prima di tutto fatemi dire che usare le API V2

  1. รจ un po’ piรน difficile delle API V1, poichรฉ le librerie per le Maps non sono contenute in un archivio .jar, ma devono essere importate come un progetto libreria;
  2. rendono la vostra vita piรน facile durante la programmazione delle activity della vostra app. I listener sono ottimizzati, molta della logica รจ giร  stata implementatata, quindi i benefici sono maggiori delle difficoltร .

Cominciamo.

Se siete arrivati a questo punto, deduco quindi che siate giร  Sviluppatori Android, avete pagato la vostra quota a vita, e avete ottenuto la vostra API KEY dalla vostra API CONSOLE.
Se non sapete cosa significa ciรฒ che ho appena scritto,ย non esitate a lasciare un commento nell’articoloย (ma credetemi, sul web ne trovate a bizzeffe).

A questo punto aprite Eclipse, cliccate su “Android SDK Manager“, quindi controllate che il servizio “Google Play Services” sia installato. Se non lo รจ, scaricatelo

 

1.1 Come controllare se รจ presente Google Play Services
1.1 Come controllare se รจ presente Google Play Services

 

Ok, ora avete tutto ciรฒ che vi serve per usare le maps.
– Create un nuovo Progetto Android,
chiamatelo “Gennarino”, o “Francis_FROM_Coppola” se vi piace. O “PrjBase” se siete indescrivibilmente noiosi.
– Quindi andate sul vostro “androidManifest.xml”ย 
e aggiungete le stringhe evidenziate, come nelle foto a seguire…

 

1.2 androidManifest.xml - AGGIUNGERE I PERMESSI E ALTRE IMPOSTAZIONI
1.2 androidManifest.xml – AGGIUNGERE I PERMESSI E ALTRE IMPOSTAZIONI

 

1.3 androidManifest.xml  - AGGIUNGERE LA KEY
1.3 androidManifest.xml – AGGIUNGERE LA KEY

 

… dalle quali tutti voi potete capire quanto io sia noioso… ๐Ÿ˜‰
Ad ogni modo, fermiamoci un momento per spiegare.
    • <permissionย android:name=”prjbase.main.permission.MAPS_RECEIVE” android:protectionLevel=”signature” />
      Significa che voi chiedete al vostro Sistema Operativo il permesso per ricevere le MAPS, usando una firma (la vostra API KEY);
    • <uses-featureย  ย  ย android:glEsVersion=”0x00020000″ย android:required=”true” />
      Questa indica la versione delle openGL ES (in questo caso la 2, guardate in mezzo agli zeri), e se รจ richiesta;
    • <uses-permission …../>
      Queste stringhe sono semplici, e simili ai PERMISSION nell’uso; indicano quale permesso l’app รจ autorizzata ad usare;
    • <meta-data
      android:name=”com.google.android.maps.v2.API_KEY”
      ย  ย  ย  ย  ย  ย  android:value=”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx” />
      Qua dovete inserire la vostra API KEY V2, al posto di xxx…

Modifichiamo la nostra vista map.xml

Aggiungendo un FRAGMENT che conterrร  la nostra mappa. Google ha deciso di usare i MapFragment invece delle MapView, e ciรฒย per aumentare le prestazioni (un’activity รจ parecchio piรน pesante di un fragment!!!). Comunque รจ cosรฌ, quindi fate come indicato nella immagine.
1.4 Adattare la vostra vista mappa
1.4 Adattare la vostra vista mappa

 

Ok, abbiamo aggiornato il manifest, e aggiunto il fragment alla vista. Ora dobbiamo:
– Importareย google-play-services_lib comeย PROJECT LIB
Prima di tutto dobbiamo cliccare col tasto destro sullo spazio bianco del nostro PACKAGE EXPLORER, quindi selezionare IMPORT e scegliereย “EXISTING ANDROID CODE INTO WORKSPACE”.
[box type=”warning”] STATE ATTENTI: NON SCEGLIETE “EXISTING PROJECT INTO WORKSPACE [/box]
Quindi navigate all’interno della vostra directory android-sdk, e andate in
<vostra_android-sdk_DIRECTORY>\extras\google\google_play_services\libproject

e cliccate su FINISH.

 

1.5 Importare google-play-services_lib come project lib
1.5 Importare google-play-services_lib come project lib

 

Wow! Grandi! Questo era il peggio. Passiamo al prossimo step.

ย AGGIUNGERE QUESTA LIB NEL NOSTRO PROGETTO

Quindi click destro sul progetto, click su Properties, quindi andate sul tab Android. Scendete fin dopo la lista delle versioni di Android che avete scaricato e, finalmente, avrete raggiunto la sezione Library.
Cliccate sul tasto “Add”, e selezionateย “google-play-services_lib”, quindi OK.
1.6 Aggiungere google-play-services_lib nel vostro progetto
1.6 Aggiungere google-play-services_lib nel vostro progetto

 

BEN FATTO, DELTA!

CARICARE IL NOSTRO MAP FRAGMENT NELLA NOSTRA ACTIVITY

Per caricare potrete semplicemente usareย questo comando, subito dopo ilย setContentView(R.layout.map);
ย 
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map_view)).getMap();
ย 
Fatemi dire che l’oggettoย mapย รจ una ย mapย private GoogleMap;ย  aggiungetelo all’esterno del metodoย onCreate(), nell’activity. Questo รจ il codice della nostra map activity.
package prjbase.main;
import prjbase.global.Global;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.CircleOptions;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.PolygonOptions;
public class Map extends Activity {
@SuppressWarnings(“unused”)
private Global global;
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
//SET OUR MAP FRAGMENT AS THE MAP CONTAINER, AND ASSIGN IT TO GoogleMap OBJECT
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map_view)).getMap();
//INIT GLOBAL OBJECT
global=(Global)getApplicationContext();
//CENTER OUR MAP ON 38.0, 16.0
LatLng start=new LatLng(38.0, 16.0);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(start, 15));
//CHANGE OUR CAMERA ANGLE (IN THIS CASE AT 45ยฐ ON Y AXIS)
map.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(start, 0f, 45f,0f)));
//ADD A MARKER
MarkerOptions marker=new MarkerOptions()
.position(new LatLng(Global.macelloLatitude, Global.macelloLongitude))
.title(“MACELLERIA SOCIALE”)
.snippet(“Nota anche come ‘U SPITALA'”)
.icon(BitmapDescriptorFactory.fromResource(getResources().getIdentifier(“macello”, “drawable”, “prjbase.main”)));
map.addMarker(marker);
// –> ANIMATE FROM CAMERA DISTANCE 15 TO 17 IN 2000 MILLISECONDS
map.animateCamera(CameraUpdateFactory.zoomTo(17), 2000, null);
// –> SET MAP TYPE
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
// –> ACTIVATE “MY LOCATION” BUTTON (MOVE CAMERA ON YOUR LAT/LNG)
map.setMyLocationEnabled(true);
}
}

Bene ragazzi, รจ tutto.

Aย riveder le stelle!

ย Note: you can find the horrible english version of my articleย here.

Ultime dal Blog