Date post: | 18-Dec-2014 |
Category: |
Technology |
Upload: | oscar-s |
View: | 14,793 times |
Download: | 3 times |
Usando Google Maps en tu Android App
@oscarsalguero
Agenda
@oscarsalguero
• Huella Digital y Certificado de Debug • API Key de Google Maps • Android App con Google Maps:
• Creando el proyecto correctamente • Retoques al Android Manifest • XML Layout con MapView • Activity que hereda de MapActivity • Custom Overlay para agregar Capas • Detectando la ubicación del Usuario (Bonus!)
Simulando una ubicación (Mock Location) • Enlaces de interés • Preguntas
Huella Digital y Certificado para Debug
@oscarsalguero
• Es una firma digital que identifica a cada App en el Market o a tu Eclipse IDE. • Es necesaria para que los mapas funcionen en el simulador y en los dispositivos. • Sin ella, los mapas sencillamente no cargan. • Se genera con una herramienta llamada “keytool” ubicada en: [folder-de-tu-android-sdk]/tools/ • El comando es: keytool -list -alias androiddebugkey –keystore [USER_FOLDER]/.android/debug.keystore
Huella Digital y Certificado para Debug
@oscarsalguero
El API Key de Google Maps
@oscarsalguero
• Necesitas tener una cuenta de Google para obtener una. • La API Key será asociada a tu cuenta de Google. • Hay una unica API Key (llave) por cada App. • Si la “huella digital” (fingerprint MD5) de tu App cambia, deberás obtener otra API Key con la nueva “huella digital”. • Es necesaria para que los mapas funcionen en el simulador y en los dispositivos. • Sin ella, los mapas sencillamente no cargan. • Se genera obtiene aquí: http://code.google.com/android/maps-api-signup.html • Aquí se usa el fingerprint MD5 que generamos en el paso anterior.
El API Key de Google Maps
@oscarsalguero
Creando el Proyecto Correctamente
@oscarsalguero
1. Haz click en el menu File -> New -> Android Project 2. Escribe “GoogleMapsDemo” en el campo “Project name”. 3. Deja el grupo de campos bajo “Contents” como esta por defecto. 4. Como “Build Target” debes elegir una opción que incluya Google
APIs, con un API Level mayour o igual que 7. 5. En el grupo de campos llamado “Properties”, especifica el
nombre de la App, un paquete, una Activity y un Min SDK con valor de “7”.
Tips: • No nombres tu Activity como “MapActivity”, porque tendrá conflicto de
nombre con una Activity de la API de Google Maps. • No utilices API Levels menores que 7, porque perderas features de las
APIs.
Creando el Proyecto Correctamente
@oscarsalguero
Creando el Proyecto Correctamente
@oscarsalguero
Retoques al Android Manifest
@oscarsalguero
1. Hay que indicar que nuestra App usa la librería de Google Maps
2. Nuestra App necesitara acceder a Internet para traer los mapas y para lograr nuestro “Bonus feature” de detectar la ubicación del usuario necesitaremos permisos para usar el aGPS.
Retoques al Android Manifest
@oscarsalguero
3. Nos desharemos de la barra de título para tener mas espacio en nuestro Mapa.
XML Layout con MapView
@oscarsalguero
• En Android, la interface de Usuario (UI) la creamos en un XML. • Casi todos los componentes son Views, el de mapas (MapView)
no es la excepción. • Nuestra App tiene un XML Layout con un MapView, el archivo
main.xml:
Activity que hereda de MapActivity
@oscarsalguero
• En Android, una Activity es la “pantalla”, la UI con la que el Usuario interactua, donde hace click, y donde visualiza la información.
• Para usar Google Maps, nuestra Activity tiene que heredar de MapActivity.
Custom Overlay para agregar Capas
@oscarsalguero
• Un Custom Overlay sirve para agregar Layers (capas) con información al Mapa, pines o iconos que denotan lugares es lo común.
• Debemos importar el paquete com.google.android.maps.*; • Y debemos hacer una clase que herede de ItemizedOverlay, en
este caso he llamado a dicha clase “CustomOverlay”. • Podemos sobreescribir varios de los métodos de
ItemizedOverlay para que los items en estas capas se comporten y vean como queremos, entre ellos:
addOverlay createItem size onTap
Custom Overlay para agregar Capas
@oscarsalguero
• Necesitaremos importar las librerias siquientes:
• Heredar de ItemizedOverlay:
• Debemos remitirnos al código fuente para ver los metodos a ser utilizados y los que serán modificados ( son los que tienen @Override).
Detectando la ubicación del Usuario
@oscarsalguero
• Los dispositivos Android te dejarán saber la ubicación del usuario con su Latitud y Longitug si cuentan con un módulo aGPS, este usa un acceso directo a satélites GPS orbitando nuestro Planeta, o usa triangulación de señales celulares provenientes de torres o routers Wi-Fi a tu alrededor.
• La latitud y longitud son generalmente un “float” con signo. • Accederemos a los Location Services usando el objeto
LocationManager.
Detectando la ubicación del Usuario
@oscarsalguero
• Podemos hacer algo cuando el Usuario se esta moviendo y su ubicación esta cambiando, usando un LocationListener.
Simulando una ubicación
@oscarsalguero
• Usando ADT para Eclipse y su DDMS se puede probar una App que muestre la ubicación del Usuario indicando la Latitud y Longitud manualmente o en un archivo KML.
@oscarsalguero
¿Preguntas?
Enlaces de Interés
@oscarsalguero
• El código fuente de esta presentación esta en GitHub: https://github.com/RacZo/GoogleMapsDemo • Obtaining a Maps API Key http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html • Signup for the Android Maps API http://code.google.com/android/maps-api-signup.html • Google Map View http://developer.android.com/resources/tutorials/views/hello-mapview.html • Android Developers http://developer.android.com
¡Muchas gracias!
Twitter: @oscarsalguero Sitio Web: www.oscarsalguero.com
This work is licensed under the Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.