Julio 28, 2009

De latitud y longitud a dirección física con bash

Categoría: Programación — Edwood @ 9:23 pm

En la compañía para la cual trabajo diariamente tengo que manipular datos geográficos. He aprendido mucho sobre GIS, GPS y los API de mapas como el de Google. Aunque la mayor parte del tiempo programo en Python, encuentro que los scripts en bash continúan siendo la forma más rápida para manipular datos y probar ideas.

El siguiente script que llamé “findnearest” utiliza el servicio de “reverse geocode” de Google para obtener una dirección física (pueblo, calle, avenida, etc.) dadas la latitud y longitud del lugar:


#!/bin/bash
# findnearest
# Usage: findnearest latitude longitude
# Ex.  findnearest  17.976227 -66.111016

lat=$1
long=$2
result=$(lynx -dump "http://maps.google.com/maps/geo?output=csv&oe=utf-8&ll=$lat,$long")
echo $result | cut -f3- -d,

El script depende de que el navegador web “lynx” esté instalado. Este es un navegador web que se usa en el terminal de texto.

Luego de guardar el script como “findnearest” lo hice ejecutable:

$ chmod +x findnearest

Este es un ejemplo de su ejecución;

$  ./findnearest  17.976227 -66.111016

"Calle Num 9, Guayama 00784, Puerto Rico"

El resultado devuelto por Google lo almaceno en la variable “result” y luego extraigo los campos que necesito usando el comando “cut”. En particular le pido que muestre desde el tercer campo en adelante, suponiendo que el delimitador es una coma: echo $result | cut -f3- -d,

Más artículos como este en:

Algunos artículos relacionados:


No hay comentarios »

  rss artículos Sindicación RSS para que pueda seguir los comentarios en este artículo.

No hay comentarios aún.

Deje un comentario

(requerido)

(requerido)




Proudly powered by wordpress - Theme by neuro
   *    Blogalaxia   Galaxia Linux   Unión de Bloggers Hispanos