Mapas

Estándar

Hola Androinos 🙂

Ya se que hace mucho desde mi última entrada, pero ya estoy de nuevo aqui…. 🙂 🙂 🙂

El post de hoy va sobre la api de mapas de Google, que ya se que es un tema «fácil» pero nunca viene mal tener escrito alguna experiencia de esta API.

Lo primero es crear un nuevo proyecto Android, a continuación para poder utilizar la api de google tendremos que obtener un key, ésta se obtiene a través de una cuenta de gmail, podéis seguir estos pasos para obtener vuestra key .

Pero en resumen lo que tenemos que hacer es lo siguiente:

  1. Una vez entremos dentro de la consola de google play crearemos un nuevo proyecto (arriba en la parte izquierda), le daremos el nombre que queramos.
  2. Creado nuestro proyecto iremos a API Y AUTENTICACIÓN  del listado que aparece en la parte izquierda.
  3. Seleccionamos » Google Maps Android APIV2″.
  4. Una vez activada la API, vamos a «credenciales»  también  en la parte izquierda, esto nos llevará a otra pantalla donde pulsaremos sobre «crear una clave nueva»  y dentro del la ventana emergente que aparece daremos a clave android.
  5. Seguiremos las instrucciones y pegaremos la firma sha. En mi caso la obtengo de  de «window->preferencies» dentro del cuadro que se nos abre iremos «android->build» copiamos la firma y la pegamos en la parte que nos pide google.
  6. Le damos a crear y .. Wola ya tenemos generada nuestra clave para nuestra aplicación.

Una vez tengamos nuestra key tenemos que añadir las librerías necesarias para que nuestro proyecto admita la api de google. Tendemos que abrir el sdk de android e instalar si no lo tenemos ya «Google play service» e insertar las librerias para que nuestro proyecto funcione bien . Podéis seguir los pasos de este link.

En mi caso he tenido que realizar los siguiente pasos:

  1. Botón derecho sobre el proyecto->propiedades->android y sobre la pantalla que sale al final del todo añadir la librerías «google extras».
  2. A través de JAVA BUILT PATHA añadimos las librerías «android suport v4″ y » google play services».

Una vez que tengamos todo ya preparado para trabajar con nuestros mapas, pasamos a ver el código de una aplicación muy muy sencilla. Sobre un mapa introduciremos una ciudad y nos desplazaremos hasta a ella.

Tendremos la parte de layout donde vamos a poner un «fragment» que es donde se va alojar el mapa, una cajetilla donde vamos a poner la ciudad sobre la cual nos queremos posicionar.

Por otro lado en el manifest tendremos que dar todos los permisos necesarios para poder conectarnos con la api,

    <permission
        android:name=»com.example.ejercicio08mapa.MAPS_RECEIVE»
        android:protectionLevel=»signature» />
    <uses-permission android:name=»com.example.ejercicio08mapa.permission.MAPS_RECEIVE»/>
    <uses-permission android:name=»android.permission.INTERNET» />
    <uses-permission android:name=»android.permission.ACCESS_NETWORK_STATE» />
    <uses-permission android:name=»com.google.android.providers.gsf.permission.READ_GSERVICES» />
    <uses-permission android:name=»android.permission.WRITE_EXTERNAL_STORAGE» />
    <uses-permission android:name=»android.permission.ACCESS_FINE_LOCATION» />

 También será en el manifest donde tendremos que poner la clave de la api que hemos conseguido antes

  <meta-data
        android:name=»com.google.android.gms.version»
        android:value=»@integer/google_play_services_version»/>
        <meta-data
            android:name=»com.google.android.maps.v2.API_KEY»
            android:value=»AIzaSyCXmCm_xxxxxxxxxxxxxxxx» />

Por último en nuestro programa principal tendremos el cuerpo de nuestro programa.

    private EditText txtBuscar; ->Variable donde se aloja la palabra de la ciudad que vamos a buscar.
    private Button btnBuscar; ->El botón que recibirá el evento para accionar la búsqueda.
    private GoogleMap mapa; ->El objeto Mapa.

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapa = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); ->Donde se recibirá las acciones del mapa

 A continuación la función que recoge el evento del botón.

    Geocoder geocoder = new Geocoder(this);
     String texto = txtBuscar.getText().toString();
      List<Address> results = geocoder.getFromLocationName(texto.trim(), 1);
      while (results.size()==0) {
        results = geocoder.getFromLocationName(«<address goes here>», 1);
     }

Este trozo de código es el que nos va a traer la posición del lugar que estamos buscando, y si el resultado es mayor que cero:

    if (results.size() > 0) {

                        // Creamos un marcador
                        MarkerOptions marker = new MarkerOptions();

                        // Le asignamos la localizacion del marcador obteniendo los datos del
                        // primer punto devuelto por el Geocoder
                        marker.position(new LatLng(results.get(0).getLatitude(), results.get(0)
                                .getLongitude()));

                        // Usamos el icono por defecto para el marcador
                        marker.icon(BitmapDescriptorFactory.defaultMarker());

                        // Como titulo del marcador le ponemos el texto introducido por el
                        // usuario
                        marker.title(txtBuscar.getText().toString().trim());

                        // Añadimos el marcador al mapa

                        // Creamos una actualizacion de la cámara para indicarle donde debe
                        // centrarse y que zoom debe mostrar
                        CameraUpdate cam = CameraUpdateFactory.newLatLngZoom(new LatLng(results
                                .get(0).getLatitude(), results.get(0).getLongitude()), 14);

                        // Animamos el mapa para que se centre donde le indicamos a la
                        // actualizacion de la camara
                        mapa.animateCamera(cam);
                    }

En caso de no serlo se producirá una excepción que nos indicara que el servicio de geocoding no esta disponible.

Así de sencillo es este ejemplo para empezar a probar la api de google maps.

Espero que os haya gustado y si tenéis alguna duda o discrepancia no dudéis en comentar.

SAludoss 🙂

Deja un comentario