Cargando



Google Maps API con Android Studio

Aquí presentamos la iniciación para usar las librerías y métodos incluidos en la interfaz de desarrollo de aplicaciones de Google Maps dirigido a desarrollo en Android nativo (JAVA y XML)


abr 28 2016 10:28
Avanzado
abr 28 2016 10:35

Desde cero: Actividad Google Maps

 

Ahora construiremos una actividad de Google maps que será lanzada desde la actividad que ya hemos creado, pero desde cero. Comenzaremos haciendo clic derecho sobre la carpeta contenedora del archivo de java MapsActivity. En el menú desplegable vamos a Nuevo > Actividad > Actividad vacía

 

 

google-maps-api-18.jpg

 

 

Rellenamos los campos como en la imagen de arriba, y hacemos clic en finalizar. Tendremos en cuenta que si en una aplicación no hemos creado nunca una plantilla de Google Maps y queremos iniciar un mapa desde cero hay que hacer unos cambios empezando por las dependencias de la app.

 

 

 

 

En graddle scripts se encuentran unos archivos de configuración general para la aplicación, si abrimos el build graddle (module: app) se despliega lo que aparece en la sección derecha de la imagen de arriba, la línea de código seleccionada en este caso es la que debemos agregar en las dependencias, que sería la siguiente:

compile 'com.google.android.gms:play-services:8.4.0'
Ahora debemos modificar nuestro archivo Manifest, justo debajo de la declaración del Manifest debemos agregar:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
El cual es requerido para usar la función MyLocation. En el caso hipotético en que no se empleara esta función, no es necesaria la línea que se muestra a continuación:

 

Dentro de las etiquetas denominadas application debes agregar:

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="@string/google_maps_key" />
En la carpeta que lleva el nombre values debes crear un archivo xml llamado: google_maps_api.xml y agregar el siguiente código:
<resources>
    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">EN ESTA SECCION VA TU LLAVE DE LA API</string>
</resources>
Estos pasos debes realizarlos si y solo si no creaste una actividad con la plantilla de google maps. Ahora procedemos con la actividad vacía.

 

En el archivo de java de la actividad vacía, importaremos la siguiente librería:

import android.support.v4.app.FragmentActivity;
Debido a que incluiremos el mapa en un fragmento que está dentro de nuestra actividad nueva. Luego de haber hecho lo antes mencionado, importamos la siguiente librería:
import com.google.android.gms.maps.*;
A continuación, debes extender tu clase de java a FragmentActivity e implementar OnMapReadyCallback de la siguiente manera:
extends FragmentActivity implements OnMapReadyCallback
(Elimina la extensión del appcompatActivity)

 

Al realizar esta acción, esta línea presentará un error, el cual será solucionado a través de la implementación de los métodos; es decir, es necesario agregar dentro de nuestra clase el método: onMapReady(GoogleMap googlemap){}

 

Este método lleva la etiqueta de @Override
En el layout de la actividad incluiremos dentro del bracket de RelativeLayout el siguiente fragment:

<fragment
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapnuevo"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_marginTop="200dp"
    map:liteMode="true"
    />
Recuerda que el ID lo puedes escoger tú mismo, de la misma manera, también puedes escoger las dimensiones de alto y ancho. En este tutorial solo programaremos la versión básica para demostrar el proceso necesario y los pasos a seguir para la ejecución.

 

Volvemos a la clase de java y en el metodo onCreate(), bajo la función setContentView() escribiremos:

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
	    .findFragmentById(R.id.mapnuevo);
mapFragment.getMapAsync(this);
Nota
El ID que ingreses debe ser el mismo que pusiste en el fragment

 

En la clase crearemos una variable privada que representará el mapa (es importante resaltar que esto debe hacerse fuera de cualquier método)

private GoogleMap MapaNuevo;
Y dentro del método onMapReady
MapaNuevo = googleMap;
MapaNuevo.setMapType(GoogleMap.MAP_TYPE_NORMAL);
En la actividad que se creó anteriormente con la plantilla de google maps agregaremos esta función:
public void onClick(View v) {
    startActivity(new Intent(this, ScratchActivity.class));
}
El intent* que se está programando arriba debe ser reescrito con el nombre de la clase de java que es en sus aplicaciones el Nuevo mapa, en el caso de este tutorial se llama ScratchActivity

 

Adicionalmente, en el xml layout que corresponde a esa actividad añadiremos un botón sencillo:

<Button
    android:id="@+id/boton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Nuevo mapa"
    android:background="#Ac7425"
    android:layout_alignParentBottom="true"
    android:onClick="onClick"    />
Antes de correr la aplicación es importante que te asegures de que en tu manifest la información de la nueva actividad luzca de la siguiente manera:
<activity android:name=".ScratchActivity">
    <meta-data
	    android:name="android.support.PARENT_ACTIVITY"
	    android:value="com.omglabs.myapplication.MapsActivity" />
</activity>
*Itent: Un Intent tiene que ver con el concepto de Tarea y la manera como dos programas se comunican la información sobre dicha tarea entre ellos.

 

 

google-maps-api-20.jpg

 

 

Ahora nuestras dos actividades lucen como las dos imágenes anteriores, una plantilla de Android Studio y una actividad construida desde cero. Esta fue la introducción a la API de Google maps para Android con Android Studio.


¿Te ayudó este Tutorial?


1 Comentarios


Fede Robles
abr 28 2016 14:15

Brutal, muchas gracias, me encanta este tutorial para salir de dudas con lo de las API de Google Maps.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X