Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A simple Python wrapper for version three of Google's geocoder API

branch: master
README.md

python-googlegeocoder

A simple Python wrapper for version three of Google's geocoder API.

Build Status PyPI version Coverage Status

Features

  • Submit an address and have it geocoded
  • Submit a lat/lng pair and have it reverse-geocoded
  • Results include all data returned by Google, including formatted address, location, viewport, bounds, address type and address components
  • Results automatically converted to WKT format
  • Bias results to a bounding box you provide
  • Bias results to a region you specify by country code
  • Specify a language code
  • No API key required

Getting started

Installation

$ pip install python-googlegeocoder

Geocoding an address

>>> from googlegeocoder import GoogleGeocoder
>>> geocoder = GoogleGeocoder()
>>> search = geocoder.get("Watts Towers")
>>> search
[<GeocoderResult: Watts Towers Arts Center, 1727 E 107th St, Los Angeles, CA 90002-3621, USA>]
>>> search[0].geometry.location
<Coordinates: (33.9395164, -118.2414404)>
>>> print (search[0].geometry.location.lat, search[0].geometry.location.lng)
(33.9395164, -118.2414404)

Reverse geocoding coordinates

>>> reverse = geocoder.get((33.9395164, -118.2414404))
>>> reverse
[<GeocoderResult: 1736 E 106th St, Los Angeles, CA 90002, USA>, <GeocoderResult: Watts, Los Angeles, CA, USA>, <GeocoderResult: Los Angeles, CA 90002, USA>, <GeocoderResult: South LA, Los Angeles, CA, USA>, <GeocoderResult: Los Angeles, CA, USA>, <GeocoderResult: Los Angeles, CA, USA>, <GeocoderResult: Los Angeles, California, USA>, <GeocoderResult: California, USA>, <GeocoderResult: United States>]

Viewport biasing

>>> before = geocoder.get("Winnetka")
>>> before[0]
<GeocoderResult: Winnetka, IL, USA>
>>> after = geocoder.get("Winnetka", bounding_box=((34.172684,-118.604794), (34.236144,-118.500938)))
>>> after[0]
<GeocoderResult: Winnetka, Los Angeles, CA, USA>

Region biasing

>>> before = geocoder.get("Toledo")
>>> before[0]
<GeocoderResult: Toledo, OH, USA>
>>> after = geocoder.get("Toledo", region="ES")
>>> after[0]
<GeocoderResult: Toledo, Spain>

Loop through a list of addresses and print out latitude, longitude and location type of the first result.

from googlegeocoder import GoogleGeocoder
geocoder = GoogleGeocoder()
list_of_addresses = [
    '1727 E 107th St, Los Angeles, CA', 
    '317 Broadway, Los Angeles, CA'
]
for address in list_of_addresses:
    try:
        search = geocoder.get(address)
    except ValueError:
        continue
    first_result = search[0]
    output =  [
        first_result.formatted_address, 
        first_result.geometry.location.lat, 
        first_result.geometry.location.lng, 
        first_result.geometry.location_type
    ]
    print map(str, output)

Resources

Something went wrong with that request. Please try again.