micro_geocode
Multilibrary geocoding microservice
docker-compose up
curl "$(docker-machine ip default)":5000/api/ui
Deployment
It is intended to be deployed in docker in a private network and accessed using a REST/swagger interface over HTTP.
Server
Run run_app.sh to start.
Application will be served on port 5000.
Use ngninx in front of web server or you can't do HTTPS or other fancy tricks.
Go to http://0.0.0.0:5000/api/ui to see a working, autogenerated UI.
3rd party services require keys:
- Geonames
- Google Maps
This server should only run inside of a firewalled, internal network. It has no particular security.
Client
Use sample code in micro_geocode_client
from bravado.client import SwaggerClient
client = SwaggerClient.from_url(spec_url="http://0.0.0.0:5000/swagger.yaml")
print(client)
result = client.geocode.geocode(location="takoma park, md").result(timeout=4)
print(result)
results = client.geocode_many.geocode_many(locations=
["takoma park, md", "washington, dc"]).result(timeout=4)
print(results)
Contributors
Developed at Burson-Marsteller. At end of life, released under MIT in lieu of deletion.
Some libraries vendorized in /src_libs3/ because of various setup problems.