Project: geolib

A library for geohash encoding, decoding and associated functions

Project Details

Latest version
1.0.7
Home Page
https://github.com/joyanujoy/geolib
PyPI Page
https://pypi.org/project/geolib/

Project Popularity

PageRank
0.0016049793179190733
Number of downloads
75943

Build Status python 2.7|3.4|3.5|3.6|3.7Downloads

Geolib

A python library for geohash encoding, decoding and finding neighbour cells. This is a python port of Chris Veness' javascript implementation.

Wikipedia reference

Installation

pipenv install geolib or pip install geolib

Usage

from geolib import geohash

Encode a latitude, longtiude to geohash

geohash.encode(latitude, longitude, precision)
>>> geohash.encode('70.2995', '-27.9993', 7)
>>> gkkpfve

Decode a geohash to latitude, longitude

geohash.decode(geohash), returns latitude, longitude as tuple of decimals
>>> geohash.decode('gkkpfve')
>>> (70.2995, -27.9993)

Find neighbouring cells of a geohash

geohash.neighbours(geohash) 
retuns a namedtuple (n, ne, e, se, s, sw, w, nw)    

>>> neighbours = geohash.neighbours('gcpuyph')
>>> neighbours
>>> ('gcpuypk', 'gcpuypm', 'gcpuypj', 'gcpuynv', 'gcpuynu', 'gcpuyng', 'gcpuyp5', 'gcpuyp7')
>>> neighbours.ne
>>> gcpuypm

Find adjacent cell in a given direction

geohash.adjacent(geohash, direction)
>>> geohash.adjacent('gcpuyph', 'n')
>>> gcpuypk

Find SW/NE latitude/longitude bounds of a geohash

geohash.bounds(geohash)
returns a namedtuple ((sw_lat, sw_lon), ((ne_lat, ne_lon))
>>> bounds = geohash.bounds('ezs42')
>>> bounds
>>> ((42.583, -5.625), (42.627, -5.58)))
>>> bounds.sw.lat 
>>> 42.583

Documentation

Geolib readthedocs