Welcome, guest | Sign In | My Account | Store | Cart

Complete implementation of the Munroe geohashing algorithm.

Python, 16 lines
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import hashlib

def geohash(latitude, longitude, datedow):
    '''Compute geohash() using the Munroe algorithm.

    >>> geohash(37.421542, -122.085589, b'2005-05-26-10458.68')
    37.857713 -122.544543

    '''
    h = hashlib.md5(datedow).hexdigest()
    p, q = [('%f' % float.fromhex('0.' + x)) for x in (h[:16], h[16:32])]    
    print('%d%s %d%s' % (latitude, p[1:], longitude, q[1:]))

if __name__ == '__main__':
    import doctest
    doctest.testmod()

See detailed explanation at http://xkcd.com/426/ .