Google Map en Android nativo

En este nuevo tutorial les enseñaremos la forma de implementar los mapas de google maps con Android Studio.

Como en anteriores tutoriales vamos a crear un nuevo proyecto en Android Studio con el nombre de EjemploMapa, Para este proyecto utilizamos el Activity Google Maps Activity esto para que Android Studio nos cree lo necesario para trabajar de forma rápida. Para ejemplo que ya tengan creados lo unico que hay que hacer es agregar los permisos necesarios y las dependencies necesarias para trabajar con Maps.

Una vez tengamos el proyecto creado vamos a analizar lo que nos ha creado Android Studio.

MapsActivity.java

Este es nuestro archivo principal en el encontramos una funcion setUpMapIfNeeded que es la encargada de revisar si nuestra aplicación esta lista para implementar los mapas de Google. una vez compruebe hace un llamado a la función setUpMap() en esta función vemos nos crea un Market en la posición 0,0

google_maps_api.xml

Este Archivo lo unico que tiene es la llave que nos da la consola de Google para usar los mapas. aquí también encontramos las instrucciones para crear dicha llave.

AndroidManifest.xml

En el AndroidManifest lo importante de resaltar son los permisos:

  • uses-permission android:name="android.permission.INTERNET"
  • uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
  • uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
  • uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"
  • uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
  • uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"

El meta que interpreta la llave o key de Google console

  • meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/google_maps_key"

build.gradle

Lo mas importar es en las dependencies que se agrega compile 'com.google.android.gms:play-services:6.5.87', que es la librería para trabajar con Play Store y las que nos deja utilizar los mapas de Google.

Dentro del proyecto vamos a encontrar muchos archivos mas pero los que se utilizan para el funcionamiento de los mapas son los ya explicados anteriormente, una vez entendido vamos a mover la posición del usuario a una coordenada y adicional mente vamos a mover la cámara del mapa e implementando un Zoom sabre el mismo.

Esto lo logramos agregando a la función setUpMap

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(4.598056000000001, -74.07583299999999), 5));

mMap.addMarker(new MarkerOptions().position(new LatLng(4.598056000000001, -74.07583299999999)).title("Ejemplo De Hablemos de Android"));

Codigo MapsActivity.java


package android.ejemplo.com.ejemplomapa;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity {

    private GoogleMap mMap; // Might be null if Google Play services APK is not available.
    private static final LatLng PosUsu = new LatLng(4.665965438158443, -74.05572652816772);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        setUpMapIfNeeded();
    }

    @Override
    protected void onResume() {
        super.onResume();
        setUpMapIfNeeded();
    }

    /**
     * Sets up the map if it is possible to do so (i.e., the Google Play services APK is correctly
     * installed) and the map has not already been instantiated.. This will ensure that we only ever
     * call {@link #setUpMap()} once when {@link #mMap} is not null.
     * 

* If it isn't installed {@link SupportMapFragment} (and * {@link com.google.android.gms.maps.MapView MapView}) will show a prompt for the user to * install/update the Google Play services APK on their device. *

* A user can return to this FragmentActivity after following the prompt and correctly * installing/updating/enabling the Google Play services. Since the FragmentActivity may not * have been completely destroyed during this process (it is likely that it would only be * stopped or paused), {@link #onCreate(Bundle)} may not be called again so we should call this * method in {@link #onResume()} to guarantee that it will be called. */ private void setUpMapIfNeeded() { // Do a null check to confirm that we have not already instantiated the map. if (mMap == null) { // Try to obtain the map from the SupportMapFragment. mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); // Check if we were successful in obtaining the map. if (mMap != null) { setUpMap(); } } } /** * This is where we can add markers or lines, add listeners or move the camera. In this case, we * just add a marker near Africa. *

* This should only be called once and when we are sure that {@link #mMap} is not null. */ private void setUpMap() { mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(4.598056000000001, -74.07583299999999), 5)); mMap.addMarker(new MarkerOptions().position(new LatLng(4.598056000000001, -74.07583299999999)).title("Ejemplo De Hablemos de Android")); } }

Obtener la llave de la consola de Google

Para obtener la llave en la consola de Google vamos a ir a esta ruta. https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=D0:EC:48:BF:BF:7E:96:CF:6F:57:3E:AA:97:11:03:B6:A3:DB:46:D5%3Bandroid.ejemplo.com.ejemplomapa que es la ruta que nos brinda el archivo google_maps_api.xml, una vez hay creamos un nuevo proyecto

damos click en crear

Una vez hecho esto la consola nos da la llave que comienza con AIza esta llave la copiamos y la pegamos en el archivo google_maps_api.xml.

Listo ahora solo nos queda probar la aplicación en un dispositivo dado que en el emulador no nos va a funcionar debido a que tendríamos que tener instalado la ultima versión de la Play Store. recuerden que pueden utilizar su Android para emular las aplicaciones con un par de configuraciones, si desean que les enseñe como por favor comenten y montare un vídeo para que sepan como.

El resultado que deben tener es igual al de la primera imagen de este tutorial.

Comentarios

Entradas populares de este blog

Como conectar MySQL con Android Nativo

Lista con imágenes Android nativo (ListView)

La nueva App de Android para trabajar