Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 08/10/14, 21:13:12
Avatar de SGSGOMSAU
SGSGOMSAU SGSGOMSAU no está en línea
Usuario poco activo
Mensajes: 41
 
Fecha de registro: ene 2014
Localización: Barcelona
Mensajes: 41
Modelo de smartphone: Motorola Moto G
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
Variable TIEMPO RESTANTE en Maps

A partir de las aportaciones de otros Taskers he creado una tarea, a la que he nombrado MONITOREO.

JUSTIFICACIÓN: Son muchas las horas que conduzco y a menudo a horas intempestivas y cansado despues de jornadas maratonianas. Como muchos, tengo una mujer sufridora, la cual agradece un mensaje automático conforme sigo mi ruta hacia casa.

PERFIL:
He definido un perfil, que se activa cada diez minutos y siempre que la variable %Monitoreo sea 1, valor que se cambia a partir de apretar un boton en una escena, modificada a partir del proyecto de Cace0353 (http://www.htcmania.com/showthread.php?t=813695). Con ello puedo decidir cuando se envia o cuando no se envia el mensaje automático.

TAREA
Una primera subtarea, basada en la tarea BUSCAR POSICIÓN del mismo compañero, me establece la posición y la localización en coordenadas.

Puesto que la primera subtarea supone algo de tiempo, pongo en espera unos 50 segundos la tarea principal.

Por último, mediante WHATSTASKER SEND MESSAGE, envio un mensaje, con el siguente texto

"Son las %HoraGPS.
Estoy en %Nomlloc
Coordenadas: %Lloc
Enlace: http://maps.google.com/maps?q=loc.%Lloc
Velocidad: %LOCSPD*3,6 Km/h"

Las variables %HoraGPS, %Nomlloc y %Lloc provienen de la subtarea BUSCAR POSICIÖN anterior, y definen la hora en la que se ha obtenido la posición, el resultado de localización (calle, población, o en su caso las cooredenadas), las coordenadas GPS, un enlace que permite visualizar el punto concreto sobre el mapa, y por último la VELOCIDAD a la que voy en el momento de obtener la posición (puesto que la variable se expresa em m/sg, hago la conversión a Km/h, multiplicando el valor de la variable por 3,6)

Con ello consigo tranquilizar la parienta, eso si, si ve dos mensajes consecutivos con la misma localización y con velocidad cero...significa llamada segura!

Quisiera avanzar un poco mas, y puesto que, mientras conduzco, siempre me guio con el MAPS, quisiera poder poner en el mensaje la HORA ESTIMADA de llegada a casa, que en la última versión del MAPS aparece en el margen inferior derecho.

¿Alguien sabe que VARIABLE INTERNA utiliza el MAPS para este dato? ¿Tengo que hacer un INTENT?

Gracias por leer el rollo, y desde aquí agradecer una vez mas al compañero que compartió el proyecto de ayuda de navegación.
Responder Con Cita
Gracias de parte de:


  #2  
Viejo 09/10/14, 00:50:36
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Cita:
Originalmente Escrito por SGSGOMSAU Ver Mensaje
Variable TIEMPO RESTANTE en Maps
En primer lugar quiero felicitarte por la excelente introducción y explicación de todo el asunto, incluyendo el reconocimiento a Cace0353 y el enlace a su post, y también por no limitarte a hacer la pregunta: aportas tu trabajo como pista para que otros compañeros podamos enriquecernos de ello. Excelente.

Respecto a la pregunta... no conozco la respuesta pero me temo que no va a ser fácil. Ese valor de tiempo estimado de llegada es un dato interno de Maps y -en principio- no me parece fácil que Tasker pueda consultarlo u obtenerlo. Yo haría algunas búsquedas por Internet para investigar si Maps tiene algún mecanismo para poder consultar ese tipo de información; si dominas el inglés tienes más posibilidades con esas búsquedas. Ojalá algún otro compañero te pueda dar una ayuda más concreta.

Entretanto, quizá te sirva de consuelo o de aproximación, otro dato. Sabiendo las coordenadas de ambos puntos (dónde estás y dónde está tu casa), Tasker puede calcular fácilmente la distancia (en línea recta) entre ambas posiciones. Es una aproximación muy tosca, pero es mejor que nada. Si te interesa el tema, puedes obtener más detalles en el post siguiente:
http://www.htcmania.com/showpost.php...8&postcount=35
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 09/10/14, 19:08:52
Avatar de SGSGOMSAU
SGSGOMSAU SGSGOMSAU no está en línea
Usuario poco activo
Mensajes: 41
 
Fecha de registro: ene 2014
Localización: Barcelona
Mensajes: 41
Modelo de smartphone: Motorola Moto G
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
Gracias Caravantes, llevo tiempo leyendo vuestras aportaciones, y puesto que trabajamos con elementos LÓGICOS, el sentido común indica que para facilitar la comprensión utilicemos tambien orden y lógica. Para solucionar cualquier problema lógico siempre se ha de seguir el esquema Datos-Incógnitas-Planteamiento-Resultado.

Como muy bien dices si tenemos la distancia a RECORRER (la subtarea UbicDistancia, desde el punto actual hasta el destino) y una distancia RECORRIDA (la misma subtarea desde el punto de inicio hasta el punto actual), sabiendo la HORA DE INICIO y la HORA ACTUAL, podemos establecer una VELOCIDAD MEDIA, y con ella y la primera distancia, establecer una HORA ESTIMADA DE LLEGADA...

Trabajo en ello y os propongo planteamientos...sin dejar cerradas "otras líneas de investigación"
Responder Con Cita
  #4  
Viejo 09/10/14, 22:47:51
Avatar de mlesir
mlesir mlesir no está en línea
Usuario muy activo
Mensajes: 2,263
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Versión de ROM: 4.4 Cyanogen
Tu operador: Pepephone
Mencionado: 36 comentarios
Tagged: 2 hilos
Caravantes te acuerdas de lo que "descubrí" de que te dijera el nombre de la calle con http get creo y que resulta que tu ya sabias hace tiempo?
Con eso no seria posible?
EDITO: Aquí esta el hilo:
http://www.htcmania.com/showthread.php?p=11651526
Mirate también el post 4 donde Caravantes me rompe el corazon y pone los links al hilo donde esto ya estaba resuelto.
La idea es que si esto se puede quizá lo que tu quieres hacer también.

Última edición por mlesir Día 09/10/14 a las 22:55:16
Responder Con Cita
Los siguientes 2 usuarios han agradecido a mlesir su comentario:
  #5  
Viejo 10/10/14, 01:19:42
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Mlesir, creo que... lo que yo había descubierto anteriormente es que se podía obtener el nombre del lugar (calle, municipio, etc), a partir de las coordenadas. Pero la consulta de distancias y tiempos de trayectos, eso creo que lo descubriste tú... y yo ni me acordaba de ello, has hecho bien en refrescarnos la memoria con esa URL.

Cita:
Originalmente Escrito por SGSGOMSAU Ver Mensaje
Trabajo en ello y os propongo planteamientos...sin dejar cerradas "otras líneas de investigación"
Bueno, pues resulta que SÍ SE PUEDE hacer, aunque no de la forma directa (comunicación de Tasker con la app Maps que también está funcionando en el mismo aparato), sino de otra forma distinta, según descubrió Mlesir. El pequeño inconveniente de este método es que solo funciona cuando el aparato tiene acceso a Internet. Veamos.

Es posible acceder a los servicios web del API de Google Maps, utilizando una consulta HTTP GET. Por ejemplo, para consultar el recorrido desde las coordenadas 39.867941,-4.028206 (Toledo) al punto 40.414305,-3.693956 (Madrid) se utilizaría una URL del tipo siguiente:
Código:
http://maps.googleapis.com/maps/api/directions/json?origin=39.867941,-4.028206&destination=40.414305,-3.693956
Vuelvo a poner la misma URL en formato adecuado para hacer clic sobre ella
http://maps.googleapis.com/maps/api/...4305,-3.693956

Mirando la información devuelta por el servidor se puede ver que la distancia por carretera es de 72,0 km y el tiempo previsto es de 50 min (en coche).
Código:
               "distance" : {
                  "text" : "72,0 km",
                  "value" : 71950
               },
               "duration" : {
                  "text" : "50 min",
                  "value" : 2996
Del mismo modo se puede consultar el recorrido entre cualesquiera otras coordenadas. Siguiendo la URL aportada por Mlesir llegas a la siguiente página que contiene todos los detalles para utilizar este sistema.
https://developers.google.com/maps/d...ions/#Audience

Última edición por Caravantes Día 10/10/14 a las 23:44:27
Responder Con Cita
Los siguientes 2 usuarios han agradecido a Caravantes su comentario:
  #6  
Viejo 10/10/14, 01:53:26
Avatar de mlesir
mlesir mlesir no está en línea
Usuario muy activo
Mensajes: 2,263
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Versión de ROM: 4.4 Cyanogen
Tu operador: Pepephone
Mencionado: 36 comentarios
Tagged: 2 hilos
Grande Caravantes!
Solo añadir que en realidad creo recordar que puedes sacar toda la información q podrías obtener de maps, incluso atascos, densidad de trafico, peajes, etc.
Pues ala GSGGOMSAU ! Todo tuyo y espero que publiques el perfil cuando lo tengas.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a mlesir su comentario:
  #7  
Viejo 10/10/14, 14:44:51
Avatar de SGSGOMSAU
SGSGOMSAU SGSGOMSAU no está en línea
Usuario poco activo
Mensajes: 41
 
Fecha de registro: ene 2014
Localización: Barcelona
Mensajes: 41
Modelo de smartphone: Motorola Moto G
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
Estoy babeando....no puedo decir nada mas!
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 15/10/14, 09:51:57
Avatar de Tayson1984
Tayson1984 Tayson1984 no está en línea
Betatester oficial
Mensajes: 3,572
 
Fecha de registro: ago 2008
Localización: Barcelona
Mensajes: 3,572
Modelo de smartphone: OnePlus 3
Versión de ROM: Ver mi firma
Versión de Radio: Ver mi firma
Tu operador: Movistar
Mencionado: 41 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mlesir Ver Mensaje
Grande Caravantes!
Solo añadir que en realidad creo recordar que puedes sacar toda la información q podrías obtener de maps, incluso atascos, densidad de trafico, peajes, etc.
Pues ala GSGGOMSAU ! Todo tuyo y espero que publiques el perfil cuando lo tengas.
Cita:
Originalmente Escrito por SGSGOMSAU Ver Mensaje
Estoy babeando....no puedo decir nada mas!
Se puede hacer maravillas con esto y Tasker. Por lo pronto lo que hace Google Now indicándote el tiempo que tienes hasta el trabajo.

Yo también espero tu perfil SGSGOMSAU
Responder Con Cita
  #9  
Viejo 16/10/14, 20:22:17
Avatar de SGSGOMSAU
SGSGOMSAU SGSGOMSAU no está en línea
Usuario poco activo
Mensajes: 41
 
Fecha de registro: ene 2014
Localización: Barcelona
Mensajes: 41
Modelo de smartphone: Motorola Moto G
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
De momento os comento un avance. Voy a utilizar el API de matriz de distancia de Google, puesto que el xml que me devuelve el API de rutas me especifica para cada etapa de rutas, y puesto que el número de etapas depende de cada viaje, no va a ser comodo para la posterior separación de las variables.

Con ello, usando un HTTPGET de la siguiente dirección:
http://maps.googleapis.com/maps/api/distancematrix/xml?origins=%Lloc&destinations=%Dest&sensor=true, donde %Lloc son las coordenadas actuales y %Dest las coordenadas de destino, con ello obtengo un xml mas cómodo, como el que se indica:

<?xml version="1.0" encoding="UTF-8" ?>
- <DistanceMatrixResponse>
<status>OK<status>
<origin_address>Carrer de la Canuda, 30-32, 08002 Barcelona, Barcelona, Espanya<origin_address>
<destination_address>Avinguda Portal de l'Àngel, 70, 08002 Barcelona, Barcelona, Espanya<destination_address>
- <row>
- <element>
<status>OK<status>
- <duration>
<value>6<value>
<text>1 minut<text>
<duration>
+ <distance>
<value>27<value>
<text>27 m<text>
<distance>
<element>
<row>
<DistanceMatrixResponse>

Por lo que será fácil obtener el valor en segundos del TIEMPO ESTIMADO DE RUTA, separando la variable resultado a partir de los textos "value>" y "<value>" que añadiré matemáticamente a la hora actual (en el ejemplo son 6 segundos).

Una segunda separación con los mismos textos "value>" y "<value>" me devolverá un segundo valor, expresado en metros, que es la DISTANCIA A RECORRER, por lo que el mensaje se puede completar con el número de KILÓMETROS HASTA DESTINO (en el ejemplo son 27 metros).

En cuanto tenga algo de tiempo, pondré negro sobre blanco.

Última edición por SGSGOMSAU Día 16/10/14 a las 20:26:55
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SGSGOMSAU su comentario:
  #10  
Viejo 21/10/14, 13:20:34
Avatar de maid450
maid450 maid450 no está en línea
Miembro del foro
Mensajes: 450
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Versión de Radio: Cualquiera que ponga buen Rock
Tu operador: Yoigo
Mencionado: 15 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por SGSGOMSAU Ver Mensaje
De momento os comento un avance. Voy a utilizar el API de matriz de distancia de Google, puesto que el xml que me devuelve el API de rutas me especifica para cada etapa de rutas, y puesto que el número de etapas depende de cada viaje, no va a ser comodo para la posterior separación de las variables.

Con ello, usando un HTTPGET de la siguiente dirección:
http://maps.googleapis.com/maps/api/distancematrix/xml?origins=%Lloc&destinations=%Dest&sensor=true, donde %Lloc son las coordenadas actuales y %Dest las coordenadas de destino, con ello obtengo un xml mas cómodo, como el que se indica:


-
OK
Carrer de la Canuda, 30-32, 08002 Barcelona, Barcelona, Espanya
Avinguda Portal de l'Àngel, 70, 08002 Barcelona, Barcelona, Espanya
-
-
OK
-
6
1 minut

+
27
27 m





Por lo que será fácil obtener el valor en segundos del TIEMPO ESTIMADO DE RUTA, separando la variable resultado a partir de los textos "value>" y "" que añadiré matemáticamente a la hora actual (en el ejemplo son 6 segundos).

Una segunda separación con los mismos textos "value>" y "" me devolverá un segundo valor, expresado en metros, que es la DISTANCIA A RECORRER, por lo que el mensaje se puede completar con el número de KILÓMETROS HASTA DESTINO (en el ejemplo son 27 metros).

En cuanto tenga algo de tiempo, pondré negro sobre blanco.
Hola SGSGOMSAU, hace tiempo en el hilo que ha citado mlesir expliqué como se pueden extraer todos los datos del api de google maps con JSON y javascript sin marearse troceando el XML
Por ejemplo, para extraer esos 2 valores que quieres (distancia en metros y tiempo en segundos hasta el destino) puedes hacerlo así:
Código:
PruebaTiempoRestante (89)
    A1: HTTP Get [ Server:Port:http://maps.googleapis.com/maps/api/...56&language=es Path: Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ] 
    A2: JavaScriptlet [ Code:var data = JSON.parse(global('HTTPD'));
if(!data.routes[0] || !data.routes[0].legs[0]) {
  flash('no se ha encontrado una ruta');
  return;
}
var ruta = data.routes[0].legs[0];
var distancia = ruta.distance.value;
var tiempo = ruta.duration.value; Libraries: Auto Exit:On Timeout (Seconds):45 ] 
    A3: Flash [ Text:Quedan %distancia metros (%tiempo segundos) Long:Off ]
La primera accion solo es llamar al API (hay que pedir los datos en JSON)
en la segunda está el codigo javascript, que convierte ese JSON en un objeto, comprueba que exista una ruta en el resultado y extrae a las variables %distancia y %tiempo los elementos "distance.value" y "duration.value" respectivamente (pego el código javascript suelto para que se lea mejor)
Código:
var data = JSON.parse(global('HTTPD'));
if(!data.routes[0] || !data.routes[0].legs[0]) {
  flash('no se ha encontrado una ruta');
  return;
}
var ruta = data.routes[0].legs[0];
var distancia = ruta.distance.value;
var tiempo = ruta.duration.value;
y ya en la tercera acción como ves estas variables están disponibles en tasker.

De esta misma forma puedes sacar y recorrer todos los datos que devuelve el api, como recorrer los pasos de la ruta o cualquier cosa, tambien puedes hacerlo con el api de distancematrix, de hecho será más rápido y consumirá menos datos porque la respuesta es más corta, si tienes dudas comentalo y te echo un cable

Última edición por maid450 Día 22/10/14 a las 21:12:33
Responder Con Cita
Los siguientes 4 usuarios han agradecido a maid450 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Otro software para Android > Tasker

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 00:55:51 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007