contacto[arroba]digitallearning.es
Panorama StreetView

Implementación de Google Street View en aplicación Android

Post Series: Creación de Apps Android: Geolocalización

Siguiendo con los aspectos sobre Geolocalización que tratamos en el nuevo curso de programación de Apps con Android Studio, vamos a ver cómo añadir el panorama Street View a nuestra Aplicación Android, usando la API de Google Maps.

Cuando hablamos de la implementación del panorama Street View, nos referimos a un conjunto de imágenes que proporcionan una vista de 360º en sentido horizontal y una vista vertical de 180º, a partir de una ubicación

A continuación, y partiendo de un ejemplo que establece una posición física en el mapa, implementaremos la posibilidad de acceder a la vista panorámica Street View al seleccionar el marcador definido en el mapa, pudiéndonos desplazar o modificar el ángulo de visión de la cámara.

Si tienes dudas sobre el posicionamiento de coordenadas en Google Maps, puedes consultar el proyecto ejemplo que publicamos en una anterior serie de tutoriales sobre Geolocalización.

Una vez establecido el punto de partida, se indicarán los pasos necesarios para poder añadir esta funcionalidad a nuestro proyecto:

Puedes descargar el código completo de este proyecto ejemplo al final del tutorial.

En primer lugar nos posicionaremos sobre el método onMapReady(GoogleMap googleMap) , implementado por la interfaz OnMapReadyCallback, que recibe como parámetro de entrada una variable de tipo GoogleMap, y cuya tarea principal será la de convertir los valores de las coordenadas recibidas de la Activity principal, en una dirección física dentro de Google Maps:


Dirección en Google Maps

Se asigna a la variable de tipo GoogleMap la referencia al fragment definido en el layout:

Se llama al evento setOnInfoWindowClickListener()  que detectará la pulsación sobre la información del marcador del mapa (es decir los datos referentes a la posición física del marcador: dirección, código postal, ciudad etc.). Dentro de este evento se lanzará la Activity encargada de mostrar el panorama Street View, pasándole los valores de longitud y latitud:

Una vez seleccionado el cuadro con la información de posición del marcador en Google Map, se mostrará dicha posición desde la vista de Street View. Dicha clase llamada Activity_StreetView, hereda de la clase base Activity, e implementa la interfaz OnStreetViewPanoramaReadyCallback, que establece por defecto el método onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) :
Se declaran las variables encargadas de recoger el valor de latitud y longitud enviado desde la Activity anterior:
Posteriormente, dentro del método onCreate() , se establecerá la referencia con el fragment definido a nivel de layout. Recordemos que un fragment nos proporciona porciones de la interfaz de usuario para construir múltiples vistas de diferentes Activities:
Se asigna a la variable de tipo Bundle los intents junto con los extras enviados, para a continuación, asignar a las dos variables de tipo String declaradas a nivel de clase, los valores a partir de la clave asignada:
Finalmente, dentro del método que implementa la interfaz OnStreetViewPanoramaReadyCallback, se le asigna la posición dada a partir de los datos de latitud y longitud definidos:

Panorama StreetView

A nivel de layout bastará con establecer el atributo name del fragment definido. Como se puede apreciar el atributo id, nos sirve para establecer la referencia con la variable de tipo StreetViewPanoramaFragment:

 

Descarga del proyecto

Aquí puedes descargar el código de este proyecto ejemplo:

Descargar