Python wrapper for Geocod.io API
Project description
Python wrapper for Geocodio geocoding API.
Full documentation on Read the Docs.
If you are upgrading from a version prior to 0.2.0 please see the changelog in HISTORY.rst. The default coordinate ordering has changed to something a bit more sensible for most users.
Geocodio API Features
Geocode an individual address
Batch geocode up to 10,000 addresses at a time
Parse an address into its identifiable components
Reverse geocode an individual geographic point
Batch reverse geocode up to 10,000 points at a time
The service is limited to U.S. addresses for the time being.
Read the complete Geocodio documentation for service documentation.
Installation
pygeocodio requires requests 1.0.0 or greater and will ensure requests is installed:
pip install pygeocodio
Basic usage
Import the API client and ensure you have a valid API key:
>>> from geocodio import GeocodioClient >>> client = GeocodioClient(YOUR_API_KEY)
Geocoding
Geocoding an individual address:
>>> geocoded_location = client.geocode("42370 Bob Hope Drive, Rancho Mirage CA") >>> geocoded_location.coords (33.738987255507, -116.40833849559)
Batch geocoding
You can also geocode a list of addresses:
>>> geocoded_addresses = client.geocode([ '1600 Pennsylvania Ave, Washington, DC', '3101 Patterson Ave, Richmond, VA, 23221' ])
Return a list of just the coordinates for the resultant geocoded addresses:
>>> geocoded_addresses.coords [(33.738987255507, -116.40833849559), (33.738987255507, -116.40833849559)] >>> geocoded_addresses[0].coords (33.738987255507, -116.40833849559)
Lookup an address by queried address:
>>> geocoded_addresses.get('1600 Pennsylvania Ave, Washington, DC').coords (33.738987255507, -116.40833849559)
Address parsing
And if you just want to parse an individual address into its components:
>>> client.parse('1600 Pennsylvania Ave, Washington DC') { "address_components": { "number": "1600", "street": "Pennsylvania", "suffix": "Ave", "city": "Washington", "state": "DC" }, "formatted_address": "1600 Pennsylvania Ave, Washington DC" }
Reverse geocoding
Reverse geocode a point to find a matching address:
>>> location = client.reverse((33.738987, -116.4083)) >>> location.formatted_address "42370 Bob Hope Dr, Rancho Mirage CA, 92270"
Batch reverse geocoding
And multiple points at a time:
>>> locations = client.reverse([ (33.738987, -116.4083), (33.738987, -116.4083), (33.738987, -116.4083) ])
Return the list of formatted addresses:
>>> locations.formatted_addresses ["100 Main St, Springfield, USA", "100 Main St, Springfield, USA", "100 Main St, Springfield, USA"]
Access a specific address by queried point tuple:
>>> locations.get("33.738987, -116.4083").formatted_address "1600 Pennsylvania Ave, Washington, DC"
Or by the more natural key of the queried point tuple:
>>> locations.get((33.738987, -116.4083)).formatted_address "1600 Pennsylvania Ave, Washington, DC"
CLI usage
In the works!
Documentation
For complete documentation see the docs.
License
BSD License
History
0.5.0 (2016-05-16)
Add additional allowed fields (census, cd114)
0.4.2 (2015-02-17)
Bug fix the last bug fix
0.4.1 (2015-02-17)
Bug fix to flatten ‘fields’ argument as a single query key
0.4.0 (2014-09-28)
Bug fix for batch reverse geocoding
Removes request handling from client methods
0.3.0 (2014-03-24)
Adds support for additional data fields (e.g. Congressional districts, timezone)
0.2.1 (2014-02-15)
Fixed Python 3.3 test errors. Shouldn’t have any functional effect on Python 3.3 usage except for matching module paths of pygeocodio objects.
0.2.0 (2014-02-07)
Added initial reverse geocoding functionality
Swaps default coordinates order. This is a mostly backwards incompatible change to amend a silly design decision.
0.1.4 (2014-01-25)
Handle error in which Geoco.io has returned empty result set
0.1.3 (2014-01-25)
Packaging fix, thanks to @kyen99
0.1.2 (2014-01-23)
Moves and enhances fixture data to JSON data based on linted server responses
Adds Geocodio named errors
Better handling of errors in individual locations from batch requests
0.1.1 (2014-01-22)
Adds requests to install_requires in setup.py and drops minimum version to 1.0.0
0.1.0 (2014-01-21)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pygeocodio-0.5.0.tar.gz
.
File metadata
- Download URL: pygeocodio-0.5.0.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b12be5a5af501c437a1f1d803a48abf52253e5d9856351bc5cc64dd9f32105ea |
|
MD5 | f7fca0c133205283c7820ac91bfc31c9 |
|
BLAKE2b-256 | c2c8d38f72cebb72989eb01bc34c51e025447b606de587726ee031c450ec5439 |
File details
Details for the file pygeocodio-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: pygeocodio-0.5.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 090afc770bfff85398487c3103fa088b6f43b775f1ab22b5b4cf26d8ca5b1092 |
|
MD5 | 2a84278f9fb238f77916e1c88aeed9a7 |
|
BLAKE2b-256 | ea9847c3a334770f6f2b401fae988797c31643b049ec090a0300e55525a8beb6 |