Está en la página 1de 35

Uso del Sensor De Ubicacin.

- Obtenemos coordenadas geogrficas mediante GPS. Tambin podemos obtener la direccin de ese lugar.
- IntervaloDeDistancia, podemos poner 1 metro y cuando nos movamos esa distancia se obtendr la localizacin.
- IntervaloDeTemporizador, cada 1.000 milisegundos se hace una consulta de coordenadas.
- Podemos escribir una localizacin y nos indicar sus coordenadas, por ejemplo escribimos Grazalema y nos dar las coordenadas
de ese lugar.

_________________
Diseo

_________________
Bloques

2.Sensor De Ubicacin. GPS y mapa de Google.


- Pulsamos un Botn1 y obtenemos en el CampoDeTexto1 y CampoDeTexto2 la latitud y longitud de nuestra posicin. Adems se
crea una direccin de mapa de Google de esas coordenadas y mediante un VisorWeb veremos un mapa de Google con esa
ubicacin. - Escribimos coordenadas de latitud y longitud en los CampoDeTexto. Pulsamos el Botn2 y se mostrar en el VisorWeb
el mapa de Google correspondiente a esa posicin. - A los CampoDeTexto le marcamos la Propiedad de SoloNmero y le borramos
el texto de Pista.

Diseo

_________________
Bloques
- Fjate que he puesto variables intermedias como latitudz y longitudz, ya que latitud y longitud son variables que solo actan en el
Bloque del SensorDeUbicacin
https://www.google.es/maps/@LATITUD,LONGITUD,300m/data=!3m1!1e3
https://www.google.es/maps/@36.5256,-6.1844,300m/data=!3m1!1e3
- Fjate que la direccin del lugar del mapa est contruido uniendo la LATITUD,LONGITUD con el resto de los parmetros.
- El nmero 300 indica el zoom si ponemos un nmero menor se ver a menos altura.

Prctica 9. Uso de mapas, Speech y ActivityStarter


Vamos a realizar una aplicacin que nos dar informacin turstica sobre una ciudad, en este caso escogeremos tres lugares tursticos de Castelldefels
e informaremos de sus caractersticas y ubicacin.

Primera parte
En esta primera parte montaremos la pantalla principal, donde tendremos el ttulo d ela aplicacin, veremos las fotografas y los botones para
elegir el lugar o monumento.
Dentro de la aplicacin del AppInventor, creamos un nuevo proyecto, que lo llamaremos " Conoce Castelldefels ". Arrastraremos a la pantalla, dos
etiqueta, una imagen y tres botones:

La primera etiqueta nos mostrar el ttulo de la aplicacin, cambia las propiedades de tamao, letra, color y texto:

De la misma forma. cambia el texto de la segunda etiqueta para que indique al usuario qe debe hacer con los botones, por ejemplo puedes escribir
" Pulse el botn del lugar elegido : ", ms adelante tambin la haremos servir para mostrar el nombre del lugar.
Y ahora cambia el texto de los botones, puedes indicar que los lugares o monumentos que vamos a ver son, el Castillo, el Canal olmpico y la
playa. Para trabajar ms cmodamente, cambia tambin los nombres en el apartado de componentes, recuerda que lo puedes hacer con el botn de
"Rename" y que no puedes hacer servir ni acentos ni espacios:

Ya podemos empezar a definir el comportamiento de la aplicacin, pasa al editor de bloques.


Lo primero es definir el comporatmientto de los botones con la etiqueta del nombre del lugar, para ello arrastra un bloque de cada botn para que
al pulsarlos cambie el nombre de la etiquela labelNOMBRE al nombre del lugar elegido, tendrs que arrastrar lo bloques necesarios de la paleta de
labelNOMBRE al bloque when button....click do y aadir una etiqueta de texto que muestre el nombre del lugar:

Prueba el funcionamiento antes de continuar.


Ahora haremos que aparezca la fotografa del lugar elegido al pulsar el botn. tenemos que subir al servidor de AppInventor las fotografas
elegidas. Para ello dentro del apartado de Media sube las fotografas elegidas:
Castillo Canal Olmpico Playa

Una vez subidas las fotografas, vuelve al editor de bloques y desde la paleta de Image1 arrastra el bloque set Image1 Picture to... al interior de
los bloques de los botones, y mediante un bloque de texto, indica el nombre de la fotografa que debe aparecer :

Comprueba el funcionamiento.
Aadiremos ahora un efecto para que parezca una audio-gua. Existe un componente dentro de AppInventor que lee en voz alta el texto que
nosotros le indiquemos. Este bloque se encuentra en la paleta de Media, se llama TextToSpeech, arrstralo a la pantalla, es un componente no
visible:

Hay que definir el idioma que usar para leer el texto. Lo definiremos dentro de las propiedades en el apartado de Language indicaremos SPA de
Spanish:

Dentro del apartado de Blocks, arrastraremos de la paleta de TextToSpeech1 el bloque call TextToSpeech1.Speak message... dentro de cada
bloque del botn adecuado, y solo falta indicar el texto que debe recitar, que ser el del monumento o lugar, y lo haremos con un bloque de texto

Segunda parte. Uso de mapas de Google


Ahora introduciremos los mapas de Google para mostrar la ubicacin de cada lugar.
Para entender el funcionamiento lo haremos con un proyecto nuevo, y despus ya lo aadiremos a nuestro proyecto turstico.
Crea un nuevo proyecto y dentro del Designer, aade un botn y un bloque ActivityStartet que se encuentra en la paleta de Connectivity.
El botn lo puedes personalizar, por ejemplo define su texto como "Abrir mapa".

ActivityStarter es un componente que te permite ejecutar cualquier aplicacin de Android, un navegador, Google Maps, o incluso otra de tus
propias aplicaciones. Construirs tu aplicacin para que se inicie la aplicacin Mapas para mostrar mapas, el usuario podr despus presionar el
botn Atrs para volver a la aplicacin y seleccionar otro lugar distinto.
ActivityStarter es un componente relativamente de bajo nivel en el que tendrs que establecer algunas propiedades:
En el apartado Action, indica android.intent.action.VIEW.
Para conocer las coordenadas del sitio, debes entrar con el navegador en la aplicacin de mapas de google "maps.ggogle.com", para esta prueba
buscaremos el colegio:

Cuando cliquemos con el botn derecho del ratn en el punto que queramos, nos aparece un men, y en este men elegiremos la opcin " Qu
hay aqu?", y nos aparecern las coordenadas, las copiaremos y las pegaremos ( Control+V) en el apartado DataUri de las propiedades del
ActivityStarter, con el prefijo geo: de la siguiente manera:
geo:41.28831,1.984392

Entramos en Blocks, arrastramos un bloque del botn y dentro un bloque call ActivityStarter1.StarActivity:

Solo falta probar el botn.

Aparece el mapa pero no est centrado en el punto de inters que nos interesa. Para conseguirlo debemos modificar el contenido de la casilla de
DataUri en el Designer. Aadiremos las coordenadas segn este modelo:
geo:coordenadas?q=coordenadas
en nuestro caso sera

geo:41.28831,1.984392?q=41.28831,1.984392
Ahora aparecer centrado y con una etiqueta en el punto exacto:

Tercera parte. Aplicacin turstica

Ya solo falta aadir la ltima funcin a nuestra aplicacin. Vuelve a cargar el proyecto de la aplicacin turstica. Se trata de que cada vez que
elijamos un lugar, al hacer click podamos ver su ubicacin en un mapa de Google.
Primero aadiremos una fotografa de portada, dentro del Designer en las propiedades de la Image1, defines la imagen que te parezca apropiada:
Portada

Para mejorar la presentacin aade HorizontalArrengaments para centrar la etiqueta del ttulo y de la imagen. Para que aparezcan los botones para
situar en el mapa el lugar, aade tres tablas de 2 columnas y una fila, En la primera columna colocars la etiqueta correspondiente
LabelNOMBRE y en la seguna el botn que nos llevar al mapa de cada lugar el primero ser ButtonMAPA1, en la segunda tabla la etiqueta
LabelNOMBRE2 y en la segunda columna ButtonMAPA2 y por ltimo en la tercera tabla, en la primera columna la etiqueta
LabelNOMBRE3 y en la segunda columna el ButtonMAPA3. En el Designer debe quedar as:

Debes preparar ahora la programacin de los bloques. Primero prepararemos la presentacin y despus la aparicin de los mapas. Par ello en el
Designer debes de asignar la propiedad de hidden ( oculto) a las tablas 2 y 3 y al botn de mapas 1, para que en el inicio de la aplicacin no
aparezcan.

Ahora ya dentro del Blocks, volveremos a definir el comportamiento de los botones de la siguiente forma:
ButtonCASTILLO
Debe seguir cambiando el texto del LabelNOMBRE como al principio, pero debe hacer que aparezca el botn ButtonMAPA1, as que
definiremos esa propiedad al botn cuando pulsemos el ButtonCASTILLO. Tambin si ya hemos visto los otros lugares, tendremos que seguir
definiendo como ocultas las tablas 2 y 3 y visible la Tabla 1.

ButtonCANAL
En este caso, debemos hacer desaparecer la Tabla 1 y la Tabla 3 y que aparezca la Tabla 2, y dentro de la Tabla 2 debe aparecer el texto de la
etiqueta LabelNOMBRE2. Del botn del mapa no nos debemos preocupar.

ButtonPLAYA
Por el mismo procedimiento, debemos hacer desaparecer la Tabla 1 y la Tabla 2 y que aparezca la Tabla 3, y dentro de la Tabla 3 debe
aparecer el texto de la etiqueta LabelNOMBRE3. Del botn del mapa no nos debemos preocupar.
Comprueba el funcionamiento de la presentacin de textos, imgenes y botones, y retoca las propiedades de altura y anchura de los
componentes si lo ves necesario.
La segunda parte ser programar los botones de los mapas. Ya sabes realizar el procedimiento. Tienes que aadir tres ActivityStarter y que cada
una est asociada al botn de mapa correspondiente. Encuentra las coordenadas en el GoogleMaps y completa la aplicacin.

Location Sensor
Este componente proporciona la ubicacin del dispositivo Android, utilizando el GPS si est disponible o un mtodo alternativo en
caso contrario, como pueden ser las torres de telefona mvil o las redes inalmbricas conocidas.

LocationSensor es un componente no visible que puede proporcionar informacin sobre la ubicacin, incluyendo longitud, latitud,
altitud (si el dispositivo posee esta capacidad), y la direccin. Este componente tambin puede proporcionar geocodificacin, la
conversin de una direccin dada (no necesariamente la actual) a una latitud (con el mtodo LatitudeFromAddress) y una
longitud (con el mtodo LongitudeFromAddress).
Para funcionar, el componente debe tener la propiedad Enabled establecida, y el dispositivo debe tener habilitada la deteccin de
localizacin a travs de satlites GPS (hallndose con cobertura del sistema) o un mtodo alternativo.

Propiedades

Existen algunas propiedades en las que podemos consultar si ciertas caractersticas estn incluidas:

Enabled (true, false): Indica si la informacin de ubicacin est disponible. Se establece con el propio programa y no
tiene que ver con que la ubicacin del dispositivo este activa o no
HasAccuracy (true, false): Indica si el dispositivo Android puede informar sobre su precisin (Accuracy).
HasAltitude (true, false): Indica si el dispositivo Android puede proporcionar su altitud (Altitude).
HasLongitudeLatitude (true, false): Indica si el dispositivo Android puede proporcionar su longitud y latitud (Longitude y
Latitude).

Si estas caractersticas estn disponibles, las siguientes propiedades nos indican su valor:

Accuracy: Indica la precisin del dispositivo Android, en metros.


Altitude: Indica la altitud en la que se encuentra el dispositivo Android, en metros.
AvailableProviders: Lista de los proveedores de servicio disponibles, como el GPS o la red. Passive indica que se ha
desactivado la ubicacin del dispositivo. GPS indica que la posicin la obtiene del GPS del dispositivo. Network indica que
la posicin se optiene con redes Wifi y redes mviles.

CurrentAddress: Direccin de la posicin actual del dispositivo Android. Indica la direccin postal (calle, localidad, etc.).
Latitude: Latitud del dispositivo Android.
Longitude: Longitud del dispositivo Android.

Algunas propiedades se utilizan para la configuracin:

DistanceInterval: Determina el intervalo de distancia mnima , en metros, que el sensor va a tratar de utilizar para el
envo de actualizaciones de ubicacin . Por ejemplo, si se establece en 5 , se dispara un evento LocationChanged cuando
vara en 5 metros la posicin . Sin embargo , el sensor no garantiza que se recibir una actualizacin exactamente en el
intervalo de dicha distancia . Puede tardar ms de 5 metros para disparar un evento, por ejemplo.
ProviderLocked (true, false): Se utiliza para indicar si el dispositivo puede cambiar el proveedor del servicio activo (gps,
network). Si cambia se dispara el evento StatusChanged.
ProviderName: Podemos editar el nombre del proveedor de servicio activo.
TimeInterval: Determina el intervalo de tiempo mnimo, en milisegundos, que el sensor va a tratar de utilizar para el
envo de actualizaciones de ubicacin. Sin embargo, slo se recibirn actualizaciones de ubicacin cuando la ubicacin del
telfono en realidad cambia, y no se garantiza el uso del intervalo de tiempo especificado. Por ejemplo, si 1000 es usado
como el intervalo de tiempo, actualizaciones de ubicacin nunca sern despedidos antes de lo 1000 ms, pero pueden ser
despedidos en cualquier momento despus.

Eventos

LocationChanged (latitude, longitude, altitude): Se dispara cuando el dispositivo Android cambia de ubicacin x metros
determinados por DistanceInterval.
StatusChanged (text provider, text status): Se dispara al cambiar el proveedor de servicio. Con la propiedad
ProviderLocked podemos evitar que se produzcan estos cambios.

Mtodos

LatitudeFromAddress (text locationName): Determina la latitud de la direccin indicada.


LongitudeFromAddress (text locationName): Determina la longitud de la direccin indicada.

Aplicacin
He desarrollado una aplicacin que muestra todas las propiedades de Location y hace uso del evento LocationChanged.

Bloques significativos:

Activamos el sensor de localizacin:

Indicamos la precisin del sensor de localizacin:

Mostramos la altitud en que nos encontramos:

Mostramos la altitud y la longitud:

La direccin se muestra de esta forma:

Si se cambia de posicin, se muestran los datos nuevamente: