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":
Propiedad
|
Valor
| |
username | El nombre de usuario de la cuenta propietaria de la tabla. | |
password | El password de la cuenta propietaria de la tabla. | |
docid | El 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
| ||
OnFormSubmit | From spreadsheet | On form submit | |
sync | Time-driven | Hour timer | Every 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
Cordial Saludo
ResponderEliminarGracias por sus aportaciones muy buenas y me ayudan bastante.
podria por favor colaborarme tengo una FT que alimento desde una app diseñada con inventor, pero tengo 2 columnas que manejan formato hora, necesito obtener la diferencia entre hora de salida y hora de entrada, el problema es que en la columna donde hago la operación no me da el resultado, he intentado cambiarle todos los formatos y nada. Adicional me preguntaba si puedo hacer lo inverso a lo que explica en su articulo, es decir pasar la información de la FT a una hoja de calculo en tiempo real.
gracias por su atención y quedo atento a su respuesta
excelente aporte a la tecnología, gracias a esta gran aportación e creado tablas de consultas para servir a dos puntos de una empresa, con las tablas de consultas e ingresos desde otros formularios.
ResponderEliminarLamentablemente me esta botando un error en el rowid, que me pone los ingresos con un -1 y no geoetiqueta.
Quería preguntar si es que es un fallo de google docs o es un error del codigo scrips .
Gracias
annaus23
ResponderEliminarLo del rowid viene por defecto en el codigo, has exportado bien el archivo csv a Fusiontables?
Saludos
Hola gracias por compartir.
ResponderEliminarMe está siendo imposible conseguir que funcione
Si en la ventana de proyecto ejecuto "onFormSubmit" me da este error:
TypeError: No se puede leer la propiedad "namedValues" de undefined. (línea 21, archivo "Código")
Y esta es la linea 21
var formValues = e.namedValues;
Estoy haciendo algo mal?
Hola Ramon
ResponderEliminarLo del rowid viene por defecto en el código, has exportado bien el archivo csv a Fusiontables?
Saludos
Gracias por responder Juan Carlos
ResponderEliminarPues yo diría que si, solo hay 2 pasos que me "mosquean", el formulario no lo puedes abrir como hoja de calculo, no?, lo que abres es la hoja de calculo donde se envian las respuestas, la otra es el valor "docid" a mi no me aparece "Encrypted ID" solamente me aparece "ID" que coincide con el valor que aparece en la barra de direcciones (entre los signos =)
Voy a intentarlo de nuevo.
Hola Juancho,
ResponderEliminarEstuve ayer en tu curso de FusionTables en BcN, y estoy provando este sincronizacion. La tabla se actualiza con las respuestas del formulario, sin embargo ni la FT, ni el mapa se actualizan con las respuestas del formulario. Alguna pista de que puedo haber hecho mal?
Hola Angel
ResponderEliminarhas hecho bien el script, creo que es un problema de conexión entre el script del formulario y la hoja de fusion tables.
No te sale ni un punto?
Buenas
Eliminartengo el mismo problema de error en la línea 21
TypeError: No se puede leer la propiedad "namedValues" de undefined. (línea 21, archivo "Código")
ningún dato se pasa a la Tabla.
Ayuda Porfavor.
Ningún punto sale
Buenas,
ResponderEliminarmuy buen aporte.
Ahora, me queda una duda: ¿es posible pasar data desde una base de datos como MySQL a una Fusion Tables?
Hola Luciano
ResponderEliminarSi es posible pero debes de hacerlo con la API de Fusion Tables, te dejo el link https://developers.google.com/fusiontables/docs/v1/sql-reference
Saludos
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola, Juan Carlos
ResponderEliminarMuy interesante y útil la información que compartes
Al verlo me surgió una duda se pueden insertar datos a una tabla de Fusion Tables mediante un script o archivo sin tener que hacerlo desde la pagina o se haría con una consulta HTTP, por ejemplo para insertar 100 rows
Hola Eric
ResponderEliminarpuedes utilizar la API, al ser tablas y trabajar con mysql puedes utilizar la orden update para hacerlo, eso si debes saber un poco de programación. te dejo el link.
https://developers.google.com/fusiontables/docs/v1/sql-reference
Saludos
Hola que tal. Muy buena la información! Sin embargo no me funciona correctamente me aparece el rowid -1 y de acuerdo a las recomendaciones dadas a otros usuarios con similar problema exporte correctamente el archivo. Pordrias ayudarme /indicarme cual crees que sería el inconveniente? Muchas gracias!!!
ResponderEliminarPrueba activando la api de Google Fusion tables desde la consola https://cloud.google.com/console?redirected=true#/project/199978345781/apiui/api a mi al principio me salia el mismo error, pello luego me funciono bien. aunque aun no se donde toque.. intentare buscar la respuesta y la publicaré. Saludos
ResponderEliminarHabies verificado bien que el nombre de las tablas y de los campos coincidan, algunas veces nos da error por estas pequeñas cosas.
ResponderEliminarel archivo donde esta el script no esta disponible, lo podrias subir
ResponderEliminarDONDE ESTA EL ENLACE AL ARCHIVO Script_FT, NO EXISTE.
ResponderEliminar