Agosto 1, 2009

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

Categoría: Programación — Edwood @ 2:54 pm

Extendí el script bash que publiqué previamente para incluir como opción el servicio gratuito de “reverse geocode” de Geonames. Ahora el script requiere como tercer argumento la fuente de la dirección física: google o geonames.

#!/bin/bash
# findnearest

lat=$1
long=$2
src=$3

if [  $# -ne 3 ]
then
  echo "Usage:  findnearest   ”
  echo “Ex. findnearest 17.98 -66.109 google”
  exit 1
fi

if [ “$src” == “google” ]
then
  result=$(lynx -dump “http://maps.google.com/maps/geo?output=csv&oe=utf-8&ll=$lat,$long”)
  echo $result | cut -f3- -d,
elif [ “$src” == “geonames” ]
then
   result=$(lynx -dump “http://ws.geonames.org/findNearestAddress?lat=$lat&lng=$long” | egrep “placename|adminName1|adminName2|countryCode”| sed ’s/<[^>]*>//g’)
   echo \”$result\”

fi

Ejemplos de su uso:

$ ./findnearest 17.98 -66.109 google
"43 Calle Carlota, Guayama 00784, Puerto Rico"

$ ./findnearest 17.98 -66.109 geonames
"Guayama Guayama Puerto Rico US"

Como pueden apreciar, en este ejemplo el servicio de Google da información más precisa que Geonames y he observado que eso es así en general. Utilizo Geonames en combinación con Google cuando tengo que hacer “reverse geocode” en masa, alternándolos cuando uno de ellos deja de responder.

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