|
||
|
|
|
|||||||
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
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. |
| Los siguientes 2 usuarios han agradecido a mlesir su comentario: | ||
|
|
|
#2
|
||||
|
||||
|
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 |
|
#3
|
||||
|
||||
|
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);
}
|
| Los siguientes 3 usuarios han agradecido a maid450 su comentario: | ||
|
#4
|
||||
|
||||
|
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
|
|
#5
|
||||
|
||||
|
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... ![]() |
|
#6
|
||||
|
||||
|
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 Attributes rigin=Barcelonadestination=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:
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á |
| Los siguientes 3 usuarios han agradecido a maid450 su comentario: | ||
|
#7
|
||||
|
||||
|
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. |
![]() |
Estás aquí
|
||||||
|
||||||