sábado, 1 de diciembre de 2012

Comenzando con Google Maps




Desarrollo sobre la plataforma Android


Hola a todos, nuevamente estoy por acá, esta vez voy a escribir sobre un tema que realmente no me había puesto a utilizar en profundidad, pero que debido a una aplicación que estoy armando, estoy leyendo bastante documentación. Y es la utilización de los mapas de Google en nuestras aplicaciones Android, asi que ahora vamos a arrancar con el mismo :D

Bueno si estan leyendo esto, imagino que ya tendrán instalado el IDE que desean utilizar, en mi caso Eclipse, el SDK de Android y la JDK. Ya con esto preparado y armado, para poder utilizar los mapas de Google, vamos a necesitar un par de cosas más, una de ellas es con el SDK Manager descargarse la versión de Android en la que queremos desarrollar, pero que trae incorporada las API de Google, ya que con la versión original de Android al no traer esto incorporado, no podremos utilizar los mapas, u otros productos de Google.



Una vez que tengamos descargado esto, también lo que deberemos hacer es crear una VM, con esa versión en particular de Android que trae incorporadas esas API de Google.



Con esto solo no basta, el último paso para poder usar los mapas es obtener una Key de Google Maps, esto no es muy complicado, este es el manual oficial:



https://developers.google.com/maps/documentation/android/mapkey

Es muy sencillo obtenerla, lo que deberemos hacer es buscar la debug.keystore (por las dudas aclaro, que si ustedes desean subir la app a un repositorio como Google Play, deberán generar una nueva Key  ya que como podrán ver por el nombre esta es solo una versión para depuración y si no lo hacen los que se bajen la app no podrán ver los mapas ),  en el caso de usuarios Linux  normalmente esta se encuentra dentro de esta carpeta:  ~/.android/ de todas maneras si no conocemos la ubicación, una forma muy sencilla de obtenerla es desde el Eclipse con el SDK configurado, ir a Windows -> Preferences -> Android -> Build y como se ve en la imagen, tenemos el path donde se encuentra dicho archivo.


Ahora se mueven a la carpeta donde se encuentra la key y con este comando:
keytool -list -v  -keystore debug.keystore   ( la opción -v les muestra todas las versiones como SHA1 y demás, yo la agregue al comando, porque a veces te muestra un hash que a nosotros no nos sirve ;))
Podrán ver los diferentes hashes de la key, ustedes necesitan el MD5, que debera ser similar a esto: Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98 (que es el de ejemplo de Google)


Ahora con este hash debemos dirigirnos a la siguiente dirección:



https://developers.google.com/android/maps-api-signup

Por supuesto que debemos aceptar los términos y condiciones, y aceptamos, una vez realizado eso, como veremos en la siguiente imagen nos da unos datos, yo les recomiendo copiarlos, porque los usaremos para poder mostrar los mapas ;)
Se que diran, ufff que lio poder usar la API de Google Maps, pero como ustedes van a ver una vez realizado esto, no va a ser complicado usarla, y los beneficios para el uso de geolocalización es impresionante ;)





Así que lo que deberemos hacer ahora es crear un nuevo proyecto Android, y le diremos que use para compilar el SDK con la API de Google, en este caso yo quería usar Android 2.2 asi que lo configure con el API 8 pero con la API de Google incorporada, como pueden ver en la imagen ;)


Una vez hecho esto, vamos a la carpeta res -> layout y allí vamos a editar la vista principal del proyecto para agregarle el mapa, para eso deberemos agregar el siguiente código:


<com.google.android.maps.MapView
android:id="@+id/mapageneral"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:apiKey="0rxZX0FYky7Lbpa9mz5h2Q_jSfup1flv9Fo7bEw"
android:enabled="true"
android:clickable="true"
 />
Donde el android:apiKey  es la clave que les otorgó Google para su debug.keystore.(también tengan en cuenta que si no le ponen el atributo android:clickable en true, no podrán hacer nada con el mapa ;) ) Ahora lo que nos queda es agregar las librería en el manifest, para ello dentro de los tag application debemos insertar este código:
<uses-library android:name="com.google.android.maps" />

y también fuera del tag application, por convención antes del mismo debemos agregar el permiso para el uso de internet, que se hace con el siguiente código :
<uses-permission android:name="android.permission.INTERNET"/>

Ahora simplemente nos resta modificar un poco la clase Java que va a manejar esa UI, para ello vamos a nuestra clase Mapas, y modificamos lo siguiente:

  • hacemos que en vez de extender de Activity, que extienda de MapActivity
  • dentro del método onCreate() agregamos el siguiente código:

  • // Con esto tomamos la referencia de nuestro mapa en la // vista
  • MapView mapageneral = (MapView)findViewById(R.id.mapageneral);
  • // Con esto hacemos que se vean los controles de //zoom del mapa
  • mapageneral.setBuiltInZoomControls(true);
  • // y con este ultimo hacemos que la vista de los  
  • // mapas sean del tipo Street
  • mapageneral.setStreetView(true);

Bueno una vez hecho esto, podemos ver como funciona nuestra aplicación:



Documentación oficial:

Desarrollo:

http://developer.android.com/guide/topics/location/index.html

https://developers.google.com/maps/documentation/android/?hl=es


https://developers.google.com/maps/documentation/android/reference/index?hl=es



Bueno,esto es todo por ahora, hemos visto cómo insertar nuestro primer mapa de Google en nuestra aplicación, espero que les alla gustado, nos vemos en otra ocasión ;) y en la próxima seguramente estaremos ampliando sobre el tema :D


Saludos a todos, Gabriel E. Pozo