Batch google geocoding tool. Automatically handle API key, save result to disk and manage your todo list.
Project description
Why geomate is so cool?
Let’s imaging this:
We applied multiple API keys. And the program automatically use the available one and stop when none is available.
The process engine automatically store everything we got into a database, so we can access the result later via address
The engine automatically handle the errors and exception. And auto retry it later.
The engine takes address string and also decimal lat, lng tuple, and work smartly.
The task engine automatically find out those addresses we have done and only work on new one.
That is geomate
Usage Example
Basically, you only need to do three things, and geomate will take care of everything else for you:
give me your API keys.
name a database file.
give me all the address you want to do.
Don’t believe? Let’s see an real example.
import geomate
import pprint
# put your google map API key here, what you see here is all fake
api_keys = [
"AIzaSzAuzs8xdhysdYZO1wNV3vVw1Ad3bL_Dnpk", # user1
"AIzaSyBfgV3y5z_od61NdoTSdu9wgEdg5D_slnk", # user2
"AIzaSyDsaepgzV7qoccqTW7P2fMmvigxnzg-ZdE", # user3
"AIzdSyBqgiVid6V2xPZoADqv7dobIfvbhvGhEZA", # ...
"AIzaSyBtbvGyyAwtywSdsk8-okThcN3qp15GDZQ",
"AIzbSyC5XmaneaaRYLr3H0h7HMRoFPgjW9xcu2w",
"AIz3SyDgM5xmKIjS_nocN_TBRLxrFDypVyON9bU",
"AIzdSyCn95-wDqhxM1CtU3XjvirdAxCU_c1ihu8",
]
# create a google geocode API client
googlegeocoder = geomate.GoogleGeocoder(api_keys=api_keys)
googlegeocoder.check_usable() # show you which keys are available
# bind to a geocoder and database
batch = geomate.BatchGeocoder(googlegeocoder, db_file="geocode.sqlite3")
list_of_address = [ # construct your todo address list anyway you want
"675 15th St NW Washington, DC 20005",
"2317 Morgan Ln Dunn Loring, VA 22027",
"1201 Rockville Pike Rockville, MD 20852",
(39.085801, -77.084513),
(38.872719, -77.306417),
(38.902027, -77.053536),
]
batch.process(list_of_address) # process everything
# see what's we have done
for address in list_of_address:
pprint.pprint(batch.lookup(address))
Install
geomate is released on PyPI, so all you need is:
$ pip install geomate
To upgrade to latest version:
$ pip install --upgrade geomate
Prerequisit: geopy, to install:
$ pip install geopy
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.