.: HosiriS :.

Informatica e non solo

Usare Python per interrogare Google Maps

Posted by hosiris su aprile 7, 2011

Come possiamo reperire informazioni da Google Maps senza utilizzare Javascript?
La potenza di Python e di JSON ci vengono in aiuto, rendendo questa operazione molto semplice. Vogliamo creare una picola applicazione che ci fornisce i dati di un indirizzo.
Iniziamo con le librerie necessarie:

import urllib
import urllib2
import json
import pprint
import gtk

Creiamo una funzione che ci permetterà di eseguire la query alle API:

def fetch_json(query_url, params={}, headers={}):
     encoded_params = urllib.urlencode(params)
     url = query_url + encoded_params
     request = urllib2.Request(url, headers=headers)
     response = urllib2.urlopen(request)
     return (url, json.load(response))

La funzione è molto semplice da comprendere e mi sembra inutile scendere nei particolari. Adesso creiamo le variabili necessarie:

STATUS_OK = 200
QUERY_URL = 'http://maps.google.com/maps/geo?'
pp = pprint.PrettyPrinter(indent=4)
params = {
    'q': 'Roma',
    'sensor': 'false',
    'output': 'json',
    'oe': 'utf8',
    'll': '',
    'spn': '',
    'gl': '',
}

Sfruttiamo la funzione definita prima per avere le informazioni richieste:

url, response = fetch_json(self.QUERY_URL, params=params)
status_code = response['Status']['code']
if status_code != self.STATUS_OK:
    print 'Errore'
else:
    pp.pprint(response)

Il risultato sarà il seguente:

{
    u'Placemark': [ {
        u'AddressDetails': {
            u'Accuracy': 4,
            u'Country': {
                u'AdministrativeArea': {
                    u'AdministrativeAreaName': u'Lazio',
                    u'SubAdministrativeArea': {
                        u'Locality': { u'LocalityName': u'Roma'},
                        u'SubAdministrativeAreaName': u'RM'
                    }
                },
                u'CountryName': u'Italia',
                u'CountryNameCode': u'IT'
            }
        },
        u'ExtendedData': {
            u'LatLonBox': {
                u'east': 12.994561900000001,
                u'north': 42.160691900000003,
                u'south': 41.629133299999999,
                u'west': 11.9700867
            }
        },
        u'Point': {
            u'coordinates': [ 12.4823243, 41.895465600000001, 0]
        },
        u'address': u'Rome, Italy',
        u'id': u'p1'
    }],
    u'Status': { u'code': 200, u'request': u'geocode'},
    u'name': u'Roma'
}

2 Risposte to “Usare Python per interrogare Google Maps”

  1. […] Continua a Leggere […]

  2. […] geek, già fuori della scuola, è HosiriS / Giovanni Ruta, ecco uno scriptino coinvolgente Google maps, JavaScript e (naturalmente) Python. Ci sono un paio di modifiche da fare […]

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: