pygeocoder es una biblioteca de Python bajo licencia BSD que facilita el uso de la funcionalidad de geolocalización de Google. Con este módulo, podrás encontrar fácilmente las direcciones correspondientes a las coordenadas y viceversa. También podemos utilizarlo para validar y formatear direcciones.
Se basa en googlemaps 1.0.2 pero recientemente se ha actualizado para hacer uso de la versión 3. Para instalarlo simplemente escribimos en el terminal:
Si lo que queremos es validar una dirección, simplemente escribimos:
Ahora podemos prepararnos un pequeño script para tenerlo siempre a mano:
Si os fijáis en el último script hemos añadido una clave para aumentar el número de llamadas al API.
Por último, si estáis detrás de un proxy corporativo no olvidéis especificar set_proxy(proxy) (ej. '10.0.0.1:9999'.)
Fuente: http://code.xster.net/pygeocoder/wiki/Home
Se basa en googlemaps 1.0.2 pero recientemente se ha actualizado para hacer uso de la versión 3. Para instalarlo simplemente escribimos en el terminal:
$ pip install pygeocoder
Una vez instalado probaremos a obtener las coordenadas de una dirección de ejemplo:# python
Python 2.7.3 (default, Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pygeocoder import Geocoder
>>> results = Geocoder.geocode("Avenida de la Albufera, 78 28038 Madrid")
>>> print(results[0].coordinates)
(40.3949876, -3.6629345)
>>> print(results[0])
Avenida de la Albufera, 78, 28038 Madrid, Madrid, Spain
A parte de las coordenadas, podemos decirle que nos diga sólo el tipo de componente que nos interese: >>> print(results[0].country)
Spain
>>> print(results[0].postal_code)
28038
>>>
También podemos hacer la búsqueda a la inversa y obtener la dirección a partir de las coordenadas:>>> results = Geocoder.reverse_geocode(40.3949876, -3.6629345)
>>> print(results[0])
Avenida de la Albufera, 78, 28038 Madrid, Madrid, Spain
>>>
Si lo que queremos es validar una dirección, simplemente escribimos:
>>> Geocoder.geocode("Avenida de la Albufera, 78 28038 Madrid").valid_address
True
>>> Geocoder.geocode("Avenida de la Albufera, 780000000000 28038 Madrid").valid_address
false
>>>
e incluso nos hace automáticamente pequeñas correcciones:>>> result = Geocoder.geocode("Avenida de la Albufera, 78 28038 Madrid")
>>> result.valid_address
True
>>> print (result)
Avenida de la Albufera, 78, 28038 Madrid, Madrid, Spain
Ahora podemos prepararnos un pequeño script para tenerlo siempre a mano:
import sys
from pygeocoder import Geocoder
results = Geocoder.geocode(sys.argv[1:])
print(results[0].coordinates)
# python geolocate.sh "calle montera, 5 madrid"
(40.4173864, -3.703069499999999)
u otro que abra un fichero con varias direcciones y nos devuelva sus coordenadas correspondientes:#!/usr/bin/python
import sys, re
fichero = open("/home/usuario/pruebas/localizaciones.txt", "r")
TEXTO = sys.argv[1]
for line in fichero:
if re.match(TEXTO, line):
from pygeocoder import Geocoder
results = Geocoder('ZIzZay2GZazynB3NJ4nrUJk6ZaWJRZZkHcoLvn3').geocode(line.split(";")[1])
print(results[0].latitude)
Si os fijáis en el último script hemos añadido una clave para aumentar el número de llamadas al API.
Por último, si estáis detrás de un proxy corporativo no olvidéis especificar set_proxy(proxy) (ej. '10.0.0.1:9999'.)
Fuente: http://code.xster.net/pygeocoder/wiki/Home
Hola, quisiera saber si se puede hacer un map maker con python, otra cosa sabrias dividir en dos variables latitud y longitud
ResponderEliminar