You are on page 1of 12

GUIA PARA LA CONFIGURACION DE MAPAS DE GOOGLE EN APLICACIONES ANDROID

1. Determinar el lugar donde se encuentra el keystore que contiene el certificado digital para desarrollo en android. Abrir Eclipse, clic en windows -> Prefernces ->Android -> build

2. Calcular el MD5# fingerprint del certificado de debug Abrir una nueva consola de comando

Dirigirse hasta el directorio bin del directorio donde se encuentra instalado Java utilizando la consola de comandos

Ejecutamos la siguiente sentencia: keytool -v -list -alias androiddebugkey -keystore <<RUTA_KEYSTORE>>.keystore -storepass android -keypass android Reemplazando <<RUTA_KEYSTORE>> por el valor correspondiente en su pc

Al ejecutar el comando obtendremos la huella digital del certificado La siguiente imagen muestra el resultado de ejecucin del comando. EL TEXTO RESALTADO EN AMARILLO DESPUES DE MD5: DEBEMOS ANOTARLO PARA USO POSTERIOR

Copiamos la huella MD5 (Sin la parte inicial MD5:) y la utilizaremos posteriormente para obtener nuestro API KEY de google maps 3. Obtener el API KEY Dirigirse a https://developers.google.com/android/maps-api-signup Acceder usando los datos de su cuenta de google Leer y aceptar los trminos y condiciones de uso Ingresar el MD5 del certificado y hacer clic en Generar API KEY

Cuando el proceso se realiza correctamente obtendremos la clave con un mensaje de confirmacin del xito;

Guardamos nuestro API KEY recordando que este slo ser vlido para el computador que contenga el certificado digital para el que se gener el MD5 fingerprint

Agregando el mapa a nuestra aplicacin. 1. Creamos un nuevo proyecto de desarrollo Android con el nombre Localizacion, el paquete de aplicacin debe ser com.unicauca.localizacion. 2. Modifique el archivo AndroidManifest.xml reemplazando todo el contenido actual por las siguientes lneas.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unicauca.localizacion" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.INTERNET"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <uses-library android:name="com.google.android.maps"/> </application> </manifest>

3. Modifique el API utilizado para compilar el proyecto Localizacion cambiando de hacia Google APIS 4.1 Clic derecho sobre el proyecto localizacion, clic en propiedades -> Android y seleccionar Google APIS#

4. Agregar un nuevo layout llamado map_layout.xml en la carpeta de layouts. El layout deber contener las siguientes lneas de cdigo

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world"/> <com.google.android.maps.MapView android:id="@+id/map_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="0_OstYOdhxBSxk7N50CD93NFczY2W7z8uPdX_BQ" android:clickable="true" android:enabled="true" /> </LinearLayout>

Es necesario que cambie el atributo apiKey por el correspondiente al certificado de su computador

5. Modificar el cdigo de la actividad MainActivity reemplazando todo el contenido actual por las siguientes lneas de cdigo:

package com.unicauca.localizacion; import import import import import import import import import import import import import com.google.android.maps.GeoPoint; com.google.android.maps.MapActivity; com.google.android.maps.MapController; com.google.android.maps.MapView; android.location.Criteria; android.location.Location; android.location.LocationListener; android.location.LocationManager; android.os.Bundle; android.app.Activity; android.content.Context; android.view.Menu; android.widget.TextView;

public class MainActivity extends MapActivity { private MapView mapView; private MapController mapController; private final LocationListener locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub mostrarPosicion(null); } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub mostrarPosicion(location);

} }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_layout); // Obtener una referencia al MapView MapView mapView = (MapView)findViewById(R.id.map_view); // Obtener los controles para el MapView mapController = mapView.getController(); // Configurar las opciones de despliegue del mapa mapView.setSatellite(true); mapView.setStreetView(false); mapView.displayZoomControls(true); mapView.setBuiltInZoomControls(true); // Zoom in mapController.setZoom(17); //Acceder a una instancia del servicio de localizacion LocationManager locationManager; String context = Context.LOCATION_SERVICE; locationManager = (LocationManager) getSystemService(context);

//Especificar los criterios para seleccionar el proveedor de localizacion Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); String provider = locationManager.getBestProvider(criteria, true); //Obtener la ltima posicin conocida del dispositivo Location location = locationManager.getLastKnownLocation(provider); mostrarPosicion(location); //Solicitamos la actualizacin periodica de la ubicacin del dispositivo locationManager.requestLocationUpdates(provider, 1000, 5, locationListener); } private void mostrarPosicion(Location location){ // Actualizar la posicion del mapa para centrarlo hacia donde nos encontramos

Double geoLat = location.getLatitude()*1E6; Double geoLng = location.getLongitude()*1E6; GeoPoint point = new GeoPoint(geoLat.intValue(), geoLng.intValue()); mapController.animateTo(point);

String latLongString; TextView myLocationText; myLocationText = (TextView) findViewById(R.id.textView2); if (location != null) { double lat = location.getLatitude(); double lng = location.getLongitude(); latLongString = "Lat:" + lat + "\nLong:" + lng; } else { latLongString = "No location found"; } myLocationText.setText("Your Current Position is:\n" + latLongString); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; }

6. Modificar la plataforma del AVD para dar soporte a google api Abrir el Android Virtual Device Manager, y ubicar el AVD que utiliza el API 4.1

Hacemos clic en editar y cambiamos la plataforma de 4.1 a Google API 4.1

7. Iniciamos el emulador teniendo la precaucin de borrar el snapshoot actual del dispositivo, esto lo logramos habilitando la opcin Wipe user data

You might also like