google maps android studio

Upload: johanna-cifuentes

Post on 07-Jul-2018

262 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Google Maps Android Studio

    1/17

     

    InstructoraLeidy Johanna Cifuentes Martinez

    C.E.E.T Bogotá D.C

    Localización geográfica. 

  • 8/18/2019 Google Maps Android Studio

    2/17

     

    OBJETIVOS:

      Describir las APIs de Android para la geolocalización y los diferentes tipos de sistemas de

    posicionamiento disponible.

      Ver lo sencillo que resulta incorporar en nuestra aplicación un servicio de un tercero. En concreto

    Google Maps.

    Libros utilizados para crear el

    material.

    Videos multimedia de apoyo

      ANDROID DESARROLLO DEAPLICACIONES EDITORIALRA-MA Autor RobertoMontero.

     

    Cibergrafia

    https://developers.google.com/maps/documentation/android-api/location#code_samples

  • 8/18/2019 Google Maps Android Studio

    3/17

     Localización Geográfica 

    La plataforma Android dispone de un interesante sistema de posicionamiento que combina variastecnologías:

    Sistema de localización global basado en GPS. Este sistema solo funciona si disponemos devisibilidad directa de los satélites.

    Sistema de localización basado en la información recibida de las torres de telefonía celular y depuntos de acceso Wi-Fi. Funciona en el interior de los edificios.

    Estos servicios se encuentran totalmente integrados en el sistema y son usados por gran variedad deaplicaciones. Android puede adaptar la configuración del teléfono según donde se encuentre. Podríapor ejemplo poner el modo de llamada en vibración cuando estemos en el trabajo.

    El sistema de posicionamiento global, GPS, fue diseñado inicialmente con fines militares pero hoy endía es ampliamente utilizado para uso civil. Gracias al desfase temporal de las señales recibidas porvarios de los 31 satélites desplegados, este sistema es capaz de posicionarnos en cualquier parte del

    planeta con una precisión de 15 metros.

    El GPS presenta un inconveniente; solo funciona cuando tenemos visión directa de los satélites. Parasolventar este problema, Android combina esta información con la recibida de las torres de telefoníacelular y de puntos de acceso Wi-Fi.

    PERMISOS DE UBICACIÓN.

      El Google Play Services API de ubicación se recomienda para todas las solicitudes programáticas

    para los datos de localización.

      El LocationSource interfaz le permite proporcionar un proveedor de ubicación personalizada.

     Android ofrece dos permisos de ubicación: ACCESS_COARSE_LOCATION y ACCESS_FINE_LOCATION.

    El permiso que eli ja determinará la precisión de la localización devuelto por la API. Sólo tiene que

    solicitar uno de los permisos de ubicación Android, dependiendo del nivel de precisión que necesita:

      android.permission.ACCESS_COARSE_LOCATION - Permite la API para utilizar WiFi o teléfonos

    móviles de datos (o ambos) para determinar la ubicación del dispositivo. La API devuelve la ubicación

    con una precisión de aproximadamente equivalente a una manzana de la ciudad.

      android.permission.ACCESS_FINE_LOCATION - Permite la API para determinar una ubicación lo

    más precisa posible de los proveedores de ubicación disponibles, incluido el Sistema de

    Posicionamiento Global (GPS), así como los datos WiFi y teléfonos móviles.

    https://developer.android.com/reference/com/google/android/gms/maps/LocationSource.htmlhttps://developer.android.com/reference/com/google/android/gms/maps/LocationSource.htmlhttps://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATIONhttps://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATIONhttps://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATIONhttps://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATIONhttps://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATIONhttps://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATIONhttps://developer.android.com/reference/com/google/android/gms/maps/LocationSource.html

  • 8/18/2019 Google Maps Android Studio

    4/17

    ¿Cómo obtener la Ubicación actual con el GPS de Android?

    Vamos a crear una aplicación que sea capaz de leer información de localización del dispositivo yactualizarla cada vez que se produce un cambio.

    1..Crear un proyecto llamado Coordenadas

    2.. Por razones de seguridad acceder a la información de localización esta, en principio, prohibido alas aplicaciones. Si estas desean hacer uso de dicho servicio han de solicitar permisos especiales.Estos permisos hay que indicarlos en el fichero AndroidManiest .xml. En concreto, esta aplicaciónnecesita los permisos de localización precisa y localización imprecisa:

     ACCESS_FINE_LOCATION ACCESS COARSE LOCATION

     ACCESS_COARSE_LOCATION  Permite que una aplicación acceda a la ubicación aproximada

     ACCESS_FINE_LOCATION  Permite que una aplicación acceda a la ubicación precisa.

     ACCESS_LOCATION_EXTRA_COMMANDS Permite que una aplicación para acceder a comandos adicion

    del proveedor de ubicación.

     ACCESS_NETWORK_STATE Permite que las aplicaciones accedan a la información sobre

    las redes.

    http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATIONhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATIONhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATIONhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATIONhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_LOCATION_EXTRA_COMMANDShttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATEhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATEhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_LOCATION_EXTRA_COMMANDShttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATIONhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATION

  • 8/18/2019 Google Maps Android Studio

    5/17

     ACCESS_NOTIFICATION_POLICY el permiso marcador para aplicaciones que deseen acceder

    a la política de notificación.

     ACCESS_WIFI_STATE Permite que las aplicaciones accedan a la información

    acerca de las redes Wi-Fi.

    3. Ahora trabajamos en nuestro activity_main.xml en donde se van mostrar nuestras coordenadas de

    ubicación.

    2 TextView: id: resultado id:resultado1

    4. Definir LocationListener: Clase general Se utiliza para recibir notificaciones de la LocationManagercuando la ubicación ha cambiado. Estos métodos se llaman si el LocationListener ha sido registrado

    con el servicio gestor de ubicación utilizando las requestLocationUpdates (String, long, float,

    LocationListener) del método.

    Definiéndola en nuestra clase principal MainActivity.java

    importar el paquete “android.location.LocationListener ” 

    http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NOTIFICATION_POLICYhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_WIFI_STATEhttp://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String,%20long,%20float,%20android.location.LocationListener)http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String,%20long,%20float,%20android.location.LocationListener)http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String,%20long,%20float,%20android.location.LocationListener)http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String,%20long,%20float,%20android.location.LocationListener)http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_WIFI_STATEhttp://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NOTIFICATION_POLICY

  • 8/18/2019 Google Maps Android Studio

    6/17

    LocationManager: Esta clase proporciona acceso a los servicios de localización del sistema. Estos

    servicios permiten a las aplicaciones para obtener actualizaciones periódicas de la situación

    geográfica del dispositivo, o para disparar una aplicación especificada Intent  cuando el dispositivoentra en la proximidad de una zona geográfica determinada.

    Creada nuestra clase MyLocationListener , debemos de implementarla y para ello debemos llamar alservicio LocationManager del sistema Android y agregar un nuevo LocationListener de

    actualizaciones de ubicación. En el método onCreate de nuestra clase principal y en cual seejecutara durante toda la actividad.

    Geocoder: Clase que nos permite capturar con el uso del método “getFromLocation(double Latitud,double Longitud, int MáxResults)”, obtener un listado de direcciones que figuran alrededor de las

    coordenadas de latitud y longitud. 

  • 8/18/2019 Google Maps Android Studio

    7/17

    Para tener un mejor desempeño se implementan los siguientes métodos.

  • 8/18/2019 Google Maps Android Studio

    8/17

    Uso de google maps en Android Studio.

    Google Maps nos proporciona un servicio de cartografía online  que podremos utilizar en nuestras

    aplicaciones Android. es un software libre, por lo que está limitado a una serie de condiciones de

    servicio. Podemos usarlo de forma gratuita siempre que nuestra aplicación no solicite más de 15.000

    codificaciones geográficas al día.

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

    1. Configuración del entorno de trabajo:

    Para poder utilizar este servicio de Google, igual como ocurre cuando se utiliza desde una

    página web, va a ser necesario registrar la aplicación que lo utilizará. Tras registrar la

    aplicación se nos entregará una clave que tendremos que indicar en la aplicación.

    Antes de crear la clave Api es muy importante tener certificado SHA-1

    Utilizando el entorno Android Studio  accede a la carpeta .android  que encontrarás en lacarpeta de tu usuario. Dentro se almacena el fichero debug.keystore con el certificado digital

    de depuración. En Windows la ruta de este fichero podría ser en mi caso es:

    C:\Users\cifuentes0903\.android\debug.

    En Windows este programa se encuentra en la carpeta de java en su jdk.

    C:\Program Files\Java\jdk1.8.0_05

    Después de tener esta información ingresa al cmd o símbolo del sistema.

    Copia el siguiente código keytool  -list -v -keystoreC:\Users\cifuentes0903\.android\debug.keystore -alias androiddebugkey -storepass android -

    keypass Android

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

  • 8/18/2019 Google Maps Android Studio

    9/17

    Seleccionamos la información que está en SHA1: guardar a la mano porque más adelante lo

    vamos a utilizar.

    Obtener una Google Maps API Key: Requerimiento tener una cuenta de google.

    Ingresar: https://console.developers.google.com 

    Ahora vamos adicionar Google Maps Android API

    Habilitar Api

    Clic en crear

    https://console.developers.google.com/https://console.developers.google.com/https://console.developers.google.com/https://console.developers.google.com/

  • 8/18/2019 Google Maps Android Studio

    10/17

     

    Clic en habilitar

     Añadimos la credenciales al proyecto

  • 8/18/2019 Google Maps Android Studio

    11/17

     

    Nombre: ClaveAndroid

    Nombre del paquete: aplicaciones.android.com.mapasbasicos Esta información la encontramos en AndroidManifest.xml en su proyecto ya creado.

    package="aplicaciones.android.com.mapasbasicos">

    Guarda la clave la vamos a utilizar más adelante.

     Ahora Ingresa a proyecto creado en mi caso: Mapasbasicos:

    Vamos a verificar si cuentas con libreria del Google Play Service

     Abrimos el Android SDK Manager.

  • 8/18/2019 Google Maps Android Studio

    12/17

     

    Debe tener instalado Google Play services y Google Reposity: En caso contrario debes

    instalar estos paquetes.

    2. Agregar google maps Api Key a nuestra aplicación.

    Buscar el fichero XML de manifiesto denominado AndroidManifest.xml;

     Adicionamos los siguientes permisos:

    También para que los servicios externos como el Google Play Store lo consideren de cara al usuarioque desee descargar la aplicación.

    Finalmente quedando androidManifest .xml de la siguiente forma

  • 8/18/2019 Google Maps Android Studio

    13/17

     

    Adicionalmente colocamos en nuestro build.grade(Modul:app)

    3, Mostrar el Mapa

    Creamos un fichero XML de tipo fragmento al cual llamaremos activity_main.xml y cuyocontenido sea el siguiente trozo de código:

    En nuestra MainActivity.java,

  • 8/18/2019 Google Maps Android Studio

    14/17

     Ejecuta el programa nos debe salir nuestro primer mapa.

    3. Ahora vamos a trabajar MARKET nuestra ubicación y también marcadores.

    Clase public final GoogleMap extiende Objeto: Esta es la clase principal de la API de GoogleMaps para Android y es el punto de entrada para todos los métodos relacionados con el

    mapa. No se puede crear una instancia de un GoogleMap objeto directamente, más bien, se

    debe obtener uno del getMap () método en un MapFragment o MapView que ha añadido a suaplicación.

    http://developer.android.com/reference/java/lang/Object.htmlhttp://developer.android.com/reference/java/lang/Object.htmlhttp://developer.android.com/reference/java/lang/Object.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapFragment.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapFragment.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapFragment.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapView.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapView.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapView.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapView.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/MapFragment.htmlhttps://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.htmlhttp://developer.android.com/reference/java/lang/Object.html

  • 8/18/2019 Google Maps Android Studio

    15/17

     

  • 8/18/2019 Google Maps Android Studio

    16/17

     

    Seguir referencia 

    Ejecutamos

     Ahora vamos a crear un marcador adicionando la siguiente línea.

    mapas.addMarker(new MarkerOptions().position(new LatLng(0.0,00)).title("Esta es mi ubicacion") );

     Ahora vamos a darle coordenadas establecidas y crear marcadores

    https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#nested-class-summaryhttps://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#nested-class-summaryhttps://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#nested-class-summary

  • 8/18/2019 Google Maps Android Studio

    17/17