jueves, 18 de octubre de 2012

Sincronizar un formulario de Google Docs con Fusion Tables en tiempo real

Hace varios días en mis clases de Fusion Tables me hicieron varias preguntas, entre otras cuestiones querían saber como se podía sincronizar un formulario (captura de información) con una tabla de Fusion Tables en tiempo real visualizando la información en Google Maps.

La idea es sencilla y muy práctica, por medio de formularios con los que hacemos encuestas, preguntas, censos, etc. Podemos publicar la información en un mapa personalizando la ventana de información (placemarker) o la temática del mapa.


Buscando en algunos tutoriales he encontrado la solución. Para hacer el siguiente ejercicio debemos tener conocimientos en formularios de Google, hojas de cálculo de Google, Fusion Tables y Scripts de Google (no nos asustemos que es más simple de lo que parece).


Recoger datos y visualizarlos automáticamente en el mapa simplemente rellenando un formulario y sin tener que compartir la tabla con ningún usuario. Esto es especialmente útil cuando tenemos algún usuario sin mucho control de Google Docs que podría malograrnos la tabla y con ella el mapa.


Para empezar el ejercicio debemos seguir los siguientes pasos:


1. Abrimos Google Drive y creamos un formulario con las preguntas o la información que necesitamos y la guardamos dándole un nombre:




Para el ejemplo he creado 3 preguntas sencillas:

  • Nombre
  • Consulta
  • Dirección Web
  • Dirección Postal
2. Todo formulario en el fondo es una hoja de cálculo de Google. Para el siguiente paso abrimos de nuevo Google Drive, abrimos la tabla Form_FT y exportamos la tabla como archivo .csv a nuestro PC.


3. Crearemos una tabla de Fusion Tables a partir del fichero .csv que exportamos anteriormente. Nos vamos a Google Drive y creamos una  tabla dinámica de FT.




Buscamos en nuestro ordenador el archivo .csv (separado por comas) que exportamos y cuando se carguen los datos hacemos clic en "siguiente":



4. Cuando estemos dentro de Fusion Tables debemos agregar una nueva columna a la tabla que se llamará Location y sus atributos serán de localización.

Para hacer esto vamos al menú  Edit => Agregar Columna y agregamos el nombre y cambiamos el formato de la columna y lo guardamos:


5. En el siguiente paso vamos a agregar un Script en la hoja de cálculo de formulario Form_FT. 

Vamos a Google Drive y abrimos la hoja de cálculo Form_FT. Hacemos clic en herramientas => Editor de secuencia de comandos:



Se nos abrirá el panel control de la secuencia de comandos, y seleccionamos crear un proyecto en blanco. Cuando se nos abra el proyecto le damos un nombre para este caso "FormularioFT":



Después vamos al Menú => Archivo => propiedades del proyecto y en la ventana que se nos abre, nos aseguramos de estar en la pestaña "Project properties". Pulsaremos "+Add row" y añadiremos los siguientes valores:




Propiedad
Valor
usernameEl nombre de usuario de la cuenta propietaria de la tabla. 
passwordEl password de la cuenta propietaria de la tabla.
docidEl identificador de la tabla. Se obtiene abriendo la tabla y seleccionando File > About. Este valor es el que aparece en el campo Encrypted ID.

addressColumn
Es el nombre exacto de la columna de nuestra tabla que va a contener la dirección recogida a través del formulario.NOTA: Si nuestra localización ya está geocodificada (no es una dirección, sino unas coordenadas, no hace falta incluir esta propiedad.

latlngColumn
El nombre exacto de la columna de tipoLocation que añadimos a nuestra tabla en el paso 3º.NOTA: cuando se envía el formulario, el script que ahora veremos geocodifica los datos que encuentra en la columna addressColumn y guarda el resultado en esta columna de localización.



Después de añadir la información guardamos la propiedades del proyecto.

6. Debemos guardar el proyecto, para esto hacemos clic en el menú Archivo => Guardar




7. Al lado derecho donde dice codigo.gs debemos reemplazar todo el código por el que se encuentra en el siguiente enlace: Script_FT y posteriormente guardaremos de nuevo el proyecto.

8. Ahora automatizaremos el Script para que envie la informacion en tiempo real a la tabla de FT.


Vamos al Menú => Recursos => Activadores de secuencia de comandos actual y en la ventana que se abre, hacemos clic en Añadir un archivador nuevo y agregamos:


Ejecutar
Eventos
OnFormSubmitFrom spreadsheetOn form submit                 
syncTime-drivenHour timerEvery hour




Finalizado esto, pulsaremos en Guardar, y, a continuación, nos pedirá la autorización (haremos clic en "Authorize", como se muestra en la figura y, finalmente, seleccionaremos Guardar.




Ya podemos probar la sincronización, rellenando el formulario y luego ver los resultados en las tablas de FT.

Detalle a tener en cuenta:

1.  Los campos que aperecen en la ventana de información en el mapa, aparecen con links. Para resolver esto, solo debemos de ir a la tabla FT y modificar el formato de la columna y colocarla en NONE (ver siguiente imagen), si fuera una imagen deberiamos de seleccionar cualquiera de los formatos Line Image

En Fusion Tables:


Formulario: Form_FT

Mapa Resultante:  Mapa_ Formulario
Related Posts Plugin for WordPress, Blogger...