|
||
|
|
|
|||||||
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Obtener el nombre de un lugar (su dirección) sabiendo sus coordenadas
Comparto una tarea que tengo y que sirve para obtener la dirección postal en función de las coordenadas.
Normalmente, el sistema de ubicación nos devuelve las coordenadas (latitud y longitud) del sitio en el que estamos, al estilo siguiente: 40.451475,-3.704344 En muchos casos será interesante obtener también -a partir de esas coordenadas- la dirección postal o el nombre del lugar. Funciona bastante bien en ciudades y otras poblaciones: en esos casos la información obtenida incluye la calle y el número del portal, como por ejemplo "Calle Poeta Querol, 10. 46002 Valencia. Spain". Pero si las coordenadas son de un lugar despoblado (en medio de un bosque o en el mar), es evidente que no vas a obtener una información tan concreta y precisa. Los datos se obtienen del servidor maps.google.com , y luego son adecuadamente troceados y seleccionados para quedarnos solo con la dirección postal y descartar el resto de información que no nos interesa. Siendo un servidor de Google, supongo que servirá para todo el planeta, aunque yo solo lo he probado y usado en algunos sitios de la España continental. Puesto que hay que consultar un servidor de Internet, es claro que esta tarea solo funcionará cuando tengas conexión de datos. La tarea se llama UbicNombreSitio y está pensada para ser utilizada como una SubTarea. O sea que esta tarea UbicNombreSitio debe ser invocada desde otra tarea principal, mediante una acción Realizar tarea que debe incluir como parámetro1 las coordenadas del lugar y debe indicar también en cual variable se recojerá el resultado devuelto por la subtarea. Lo más cómodo y habitual es que las coordenadas estén en una variable, así que podemos incluir como parámetro1 el nombre de esa variable. Conviene que la acción Realizar tarea otorgue a la SubTarea NombreSitio una prioridad mayor que la prioridad de la tarea principal; de esta forma nos aseguramos de que la tarea principal quedará en pausa mientras se ejecuta la SubTarea. Lo más sencillo es otorgar a la SubTarea una prioridad máxima (10) y ya, puesto que que las tareas normales tienen prioridad 5 (salvo que lo hayas cambiado). Tras haberse completado la SubTarea, la tarea principal continuará ejecutándose en la siguiente acción, y podrá utilizar a conveniencia la información obtenida de la SubTarea que se habrá guardado en la variable especificada (en la misma acción Realizar tarea). Hay otro artículo que explica detalladamente todo lo relacionado con el tema Subtareas y tareas principales. Coordinación entre ellas., lo puedes ver en http://www.htcmania.com/showthread.php?t=744076 Como he dicho, la tarea UbicNombreSitio está pensada para ser utilizada como una subtarea, pero para hacer pruebas se puede ejecutar directamente; en tal caso utilizará una ubicación de Madrid (pero puedes establecer otras coordenadas que te interesen) y devolverá una Notifiación con el nombre del lugar. UbicNombreSitio (29) <Esta tarea obtiene el nombre de un lugar a partir de las coordenadas geográficas que son recibidas como parámetro. Para hacer pruebas, se puede utilizar la tarea directamente sin parámetro y en tal caso se utilizarán unas coordenadas de Madrid> A1: Si (if) [ %par1 !~ *,* ] A2: Establecer variable [ Nombre:%test A:1 Calcular:Apagado Añadir:Apagado ] A3: Establecer variable [ Nombre:%par1 A:40.45,-3.70 Calcular:Apagado Añadir:Apagado ] A4: Fin si (End if) <Consultamos la base de datos de google> A5: HTTP Get [ Servidor:Puerto:maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%par1 Ruta: Atributos: Cookies: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida: Continuar Tarea Tras Error:Encendido ] A6: Establecer variable [ Nombre:%nombresitio A:%HTTPD Calcular:Apagado Añadir:Apagado ] <Comprobamos el dato obtenido> A7: Si (if) [ %nombresitio ~ */formatted_address* ] <Ajustamos el dato obtenido> A8: Separar variable [ Nombre:%nombresitio Separador:</formatted_address> Eliminar base:Apagado ] A9: Separar variable [ Nombre:%nombresitio1 Separador:<formatted_address> Eliminar base:Apagado ] A10: Establecer variable [ Nombre:%nombresitio A:%nombresitio12 Calcular:Apagado Añadir:Apagado ] A11: Else <Dato inválido> A12: Limpiar variable [ Nombre:%nombresitio Coincidencia de Patrón:Apagado ] A13: Fin si (End if) <Devolvemos el resultado a la tarea principal> A14: Devolver [ Valor:%nombresitio Parar:Apagado ] <Se muestra el resultado en un flash pero sólo si estamos haciendo pruebas> A15: Flash [ Texto:%nombresitio Largo:Encendido ] Si (if) [ %test ~ 1 ]
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 24/12/13 a las 15:44:21. |
| Los siguientes 6 usuarios han agradecido a Caravantes su comentario: | ||
|
|
|
#2
|
||||
|
||||
|
Funciona perfecto desde Argentina, la integre a Tu tarea http://www.htcmania.com/showthread.php?t=547893
Para que funcione le agregue al final esto: A3: Realizar tarea NombreSitio Parámetro1 %Sitio . Devolver-Valor-de-Variable %nombresitio A4: Decir %nombresitio y me lee la direccion donde estoy tras decir posicion guardada |
| Los siguientes 3 usuarios han agradecido a Jusss su comentario: | ||
|
#3
|
||||
|
||||
|
Si quieres, también puedes integrar otras dos acciones similares en la segunda tarea de esa página (Posición-Volver). Yo lo tengo así, para que (antes de abrir el mapa-navegador) me diga de voz la dirección hacia la que voy caminando.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
|
#4
|
||||
|
||||
|
No consigo que me funcione...
ejecutando la tarea en modo prueba sale HTTPD, y si la añado como dice Jusss en tu otra tarea, me dicer: Error, la tarea no existe ![]() Edito: Nada nada, errores mios... en esta "subtarea" ya me da la dirección de madrid. Por otro lado, si cambio: Código:
A3: Establecer variable [ Nombre:%par1 A:40.45,-3.70 Calcular:Apagado Añadir:Apagado ] por A3: Establecer variable [ Nombre:%Sitio Calcular:Apagado Añadir:Apagado ] Muchas gracias por esas magníficas tareas
Última edición por SacalmM Día 22/02/15 a las 23:31:22. |
| Gracias de parte de: | ||
![]() |
Estás aquí
|
||||||
|
||||||