Tasker Para hablar de todo lo relacionado con la aplicación tasker

Respuesta
 
Herramientas
  #1  
Viejo 17/12/13, 14:19:59
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Google Maps y Http Get

Bueno pues dejarme deciros: Ole mis huevos y lo cabezón que soy!!!

Sin tener ni puñetera idea, de hecho nunca había usado lo del http get he conseguido esto:

Obtener la información de google maps de una ruta de un punto a otro. Toda la información. Desde las indicaciones, hasta el tiempo y distancia que vas a tardar. Eso si en XML. (si alguién va a decir que esto ya estaba muy visto, que seguro que es así, por favor esperaros hasta mañana y dejarme al menos un día para fliparme...jeje).

La mayor parte de la información la he sacado de aquí:

https://developers.google.com/maps/d...ions/#Audience

Es la pagina de la API de google.

Os dejo el Http get que yo he usado:

Servidor:Puerto ""https://maps.googleapis.com/maps/api/directions/xml?origin=Barcelona&destination=Madrid&sensor=tru e"" (sin las comillas y sin el espacio en tru e, os ea true, que no se por que me lo pone???)

Archivo de Salida: result.html

El resto de items en blanco.

Todo esto venía a que siempre había querido saber el nombre de la calle a partir de unas coordenadas. Por ejemplo puede ser útil para saber donde estoy, o para que el perfil de donde esta el coche te diga la calle en vez de mostrarte un mapa.
Supongo que los nombres de las ciudades que he usado se pueden sustituir por coordenadas. Y estas por variables.
No se, le veo muchas posibilidades: por ejemplo que nos muestre simplemente una lista de las indicaciones para ir a un sitio, y nosotros lo mostramos a nuestro gusto en una escena.
Por lo que he leído eso si no tiene en cuenta el tráfico para calcular lo que vas a tardar.

A ver si entre todos le sacamos más jugo a esto. Habría que ver como sacamos toda esa información luego en Tasker (eso va a ser telita!). Otra cosa es que yo he puesto xml pero se le puede poner que saque la información en formato "json" (ni idea de lo que es).
A lo mejor se puede hacer un http get que en vez de toda la información te de sólo unos datos más específicos, no lo se. Por otro lado si leeis el enlace veréis que los parámetros que he puesto son los obligatorios. Luego se le puede poner que vas en bici, que quieres pasar por este punto, que quieres evitar peajes,etc.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969

Última edición por mlesir Día 17/12/13 a las 14:23:49.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a mlesir su comentario:


  #2  
Viejo 17/12/13, 15:34:30
Array

[xs_avatar]
rabeliyo rabeliyo no está en línea
Miembro del foro
 
Fecha de registro: sep 2010
Mensajes: 271
Modelo de smartphone: Galaxy S4

Tiene muy muy buena pinta, una dudilla que me trae rondando la cabeza estos dias es que a la hora de crear una escena con un mapa por ejemplo,me dice de meter las coordenadas, las cuales las tengo en una variable almacenadas pero me pide meterlas en formato numerico y ahi ya me atasco

Lo quiero implementar en el perfil de ubicacion del coche que es de donde saco las variables.


A ver si sacamos otro pedazo de perfil de todo esto
Responder Con Cita
  #3  
Viejo 18/12/13, 11:14:27
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
Pues no tengo mucho tiempo ultimamente para mirarlo a fondo, pero puede ser muy interesante.
Por lo pronto para manejar estos datos en tasker lo más sencillo es usar JSON (JavaScript Object Notation) en vez de xml, ya que así, como su nombre indica, desde una acción javascript se puede acceder a todos los datos e iterar por ellos directamente, usando xml sería un infierno de separar variables y subvariables...

Como digo no puedo testearlo ahora mismo, pero en principio suponiendo que hacemos el GET que queremos, que devuelva json y almacenamos la respuesta en %resultado, se deberían poder hacer cosas como estas (javascriptlet):

Código:
//convertimos el JSON a una variable que contendrá todos los resultados
var datos = JSON.parse(resultado);
//muestra el resumen de la ruta 0 ("AP-2 y A-2")
flash(datos.routes[0].summary);
//muestra la distancia y dureción estimada de la rama (leg) 1 de la ruta (route) 1
flash(datos.routes[0].legs[0].distance.text + ' (' + datos.routes[0].legs[0].duration.text + ')');
//recorremos todos los pasos de la rama 1 de la ruta 1
for(var i=0;i<datos.routes[0].legs[0].steps.length;i++) {
    //mostramos las instrucciones para ese paso
    flash(datos.routes[0].legs[0].steps[i].html_instructions);
}
Como digo ese es un ejemplo rápido muy orientado a este caso, en realidad habría que tener en cuenta multiples posibles rutas/ramas, errores, etc...
Responder Con Cita
Los siguientes 3 usuarios han agradecido a maid450 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #4  
Viejo 19/12/13, 15:47:56
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por mlesir Ver Mensaje
Todo esto venía a que siempre había querido saber el nombre de la calle a partir de unas coordenadas.
Eso lo tenías resuelto en un hilo de hace dos meses:
Obtener el nombre de un lugar (su dirección) sabiendo sus coordenadas
http://www.htcmania.com/showthread.php?t=703855

Esa misma tarea la he revisado y actualizado posteriormente, y la he publicado hace poco en
http://www.htcmania.com/showpost.php?p=11594637
y puedes descargarte el XML de esa tarea en este post
http://www.htcmania.com/showpost.php?p=11622033
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #5  
Viejo 23/12/13, 23:43:17
Array

[xs_avatar]
gonza28 gonza28 no está en línea
Desarrollador
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Tu operador: Personal
 Cita: Originalmente Escrito por maid450 Ver Mensaje
Pues no tengo mucho tiempo ultimamente para mirarlo a fondo, pero puede ser muy interesante.
Por lo pronto para manejar estos datos en tasker lo más sencillo es usar JSON (JavaScript Object Notation) en vez de xml, ya que así, como su nombre indica, desde una acción javascript se puede acceder a todos los datos e iterar por ellos directamente, usando xml sería un infierno de separar variables y subvariables...

Como digo no puedo testearlo ahora mismo, pero en principio suponiendo que hacemos el GET que queremos, que devuelva json y almacenamos la respuesta en %resultado, se deberían poder hacer cosas como estas (javascriptlet):

Código:
//convertimos el JSON a una variable que contendrá todos los resultados
var datos = JSON.parse(resultado);
//muestra el resumen de la ruta 0 ("AP-2 y A-2")
flash(datos.routes[0].summary);
//muestra la distancia y dureción estimada de la rama (leg) 1 de la ruta (route) 1
flash(datos.routes[0].legs[0].distance.text + ' (' + datos.routes[0].legs[0].duration.text + ')');
//recorremos todos los pasos de la rama 1 de la ruta 1
for(var i=0;i<datos.routes[0].legs[0].steps.length;i++) {
//mostramos las instrucciones para ese paso
flash(datos.routes[0].legs[0].steps[i].html_instructions);
}
Como digo ese es un ejemplo rápido muy orientado a este caso, en realidad habría que tener en cuenta multiples posibles rutas/ramas, errores, etc...
Cuqando tengas tiempo podrias hacer un mini tuto de como integrar JSON en tasker? esto seria muy util si que si
Responder Con Cita
  #6  
Viejo 24/12/13, 08:58:32
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
He podido probarlo y efectivamente funciona, aquí la descripción de la tarea que he hecho para probarlo:

Prueba Maps (71)
A1: HTTP Get [ Server:Port:https://maps.googleapis.com Path:maps/api/directions/json Attributesrigin=Barcelona
destination=Madrid
sensor=true Cookies: Timeout:10 Mime Type: Output File: ]
A2: JavaScriptlet [ Code:var datos = JSON.parse(global('HTTPD'));
flash(datos.routes[0].summary);
flash(datos.routes[0].legs[0].distance.text + ' (' + datos.routes[0].legs[0].duration.text + ')');
for(var i=0;i<datos.routes[0].legs[0].steps.length;i++) {
flash(datos.routes[0].legs[0].steps[i].html_instructions);
} Libraries: Auto Exit:On Timeout (Seconds):45 ]

Basicamente, en la acción HTTP Get ponemos el servidor, la ruta y en "atributos" los distintos parametros (creo que se puede poner todo en la parte "servidor" como una URL completa, pero así separado por partes me parece más limpio)
despues el codigo javascriptlet (que pegaré por separado a continuación para que se vea más claro) hace lo siguiente:

  • Usa JSON.parse sobre la variable %HTTPD que contiene la respuesta de la llamada. Al ser un objeto JSON esto extrae todos los datos de la respuesta en una variable "datos" lista para usar directamente sin tener que manejar un xml separando variables
  • muestra con "flash" ciertos datos de la ruta
  • itera mediante un for por todos los pasos de la ruta y muestra con "flash" la descripción de cada uno de ellos
aquí el javascriptlet que he usado:
Código:
var datos = JSON.parse(global('HTTPD'));
flash(datos.routes[0].summary);
flash(datos.routes[0].legs[0].distance.text + ' (' + datos.routes[0].legs[0].duration.text + ')');
for(var i=0;i<datos.routes[0].legs[0].steps.length;i++) {
    flash(datos.routes[0].legs[0].steps[i].html_instructions);
}

En cuanto al tuto de JSON, estoy preparando un tutorial del uso de javascript en tasker en general que incluirá un capitulo sobre el JSON, lo tengo un poco parado ultimamente, pero llegará
Responder Con Cita
Los siguientes 3 usuarios han agradecido a maid450 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #7  
Viejo 24/12/13, 12:01:30
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Grande Maid.
Gonza28 en el recopilatorio tienes un minituto de maid para usar varíables.
Por cierto este verano haciendo caso a Maid me puse con el javascript y compre este libro: "Javascript" de Astor de Caso Parra editorial Anaya. El libro empieza de cero, cada cosa que se ve con su ejemplo y muy bien explicado. Imposible no entenderlo. Si queréis empezar con este lenguaje lo recomiendo.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969

Última edición por mlesir Día 24/12/13 a las 12:03:47.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a mlesir su comentario:
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Otro software para Android > Tasker



Hora actual: 00:01:59 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /