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
- รจ 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;
- 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

– Create un nuovo Progetto Android,
– Quindi andate sul vostro “androidManifest.xml”ย


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

– Importareย google-play-services_lib comeย PROJECT LIB

ย AGGIUNGERE QUESTA LIB NEL NOSTRO PROGETTO
Cliccate sul tasto “Add”, e selezionateย “google-play-services_lib”, quindi OK.

CARICARE IL NOSTRO MAP FRAGMENT NELLA NOSTRA 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.map);//SET OUR MAP FRAGMENT AS THE MAP CONTAINER, AND ASSIGN IT TO GoogleMap OBJECTmap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map_view)).getMap();//INIT GLOBAL OBJECTglobal=(Global)getApplicationContext();//CENTER OUR MAP ON 38.0, 16.0LatLng 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 MARKERMarkerOptions 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 MILLISECONDSmap.animateCamera(CameraUpdateFactory.zoomTo(17), 2000, null);// –> SET MAP TYPEmap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);// –> ACTIVATE “MY LOCATION” BUTTON (MOVE CAMERA ON YOUR LAT/LNG)map.setMyLocationEnabled(true);}}
Bene ragazzi, รจ tutto.
ย Note: you can find the horrible english version of my articleย here.