# geo.geohash

Working with geohashes.

### bbox

`(bbox geohash)`

### bbox-geom

`(bbox-geom geohash)`

### character-precision

`(character-precision geohash)`

### concentric-square-rings

`(concentric-square-rings origin)`

`(concentric-square-rings origin n)`

Given a single geohash, returns a lazy sequence of concentric square rings of geohashes around it. The first element is [hash], the second element is [northern-neighbor, northwest-neighbor, west-neighbor, ...], the third element is the list of all geohashes around *those*, and so on.

### degrees-precision-lat-cache

### degrees-precision-long-cache

### eastern-neighbor

`(eastern-neighbor h)`

### geohash

`(geohash string)`

`(geohash point precision)`

`(geohash lat long precision)`

Creates a geohash from a string, or at the given point with the given bit precision.

### geohash-center

`(geohash-center geohash)`

Returns the center point of a geohash.

### geohash-error

`(geohash-error geohash)`

Returns the error (i.e. the distance in meters between opposite corners) of the given geohash.

### geohash-max-error

`(geohash-max-error bits)`

Returns the maximum error (i.e. the distance between opposite corners of the geohash bounding box) for a given number of geohash bits. Geohashes are least precise at the equator.

### geohash-midline-area

`(geohash-midline-area geohash)`

An estimate of a geohash's area, in square meters, based on its midline dimensions.

### geohash-midline-dimensions

`(geohash-midline-dimensions geohash)`

Returns a vector of [lat-extent long-extent], where lat-extent is the length of the geohash through the midpoint of top and bottom, and long-extent is the length of the geohash through the midpoint of left and right sides. All figures in meters.

### geohashes-intersecting

`(geohashes-intersecting shape desired-level)`

`(geohashes-intersecting shape min-level max-level)`

### geohashes-near

`(geohashes-near point radius precision)`

Returns a list of geohashes of the given precision within radius meters of the given point.

### least-upper-bound-index

`(least-upper-bound-index numbers target)`

Given a sequence of numbers in descending order, finds the index of the largest number which is just greater than the target.

### neighbors

`(neighbors h)`

### northern-neighbor

`(northern-neighbor h)`

### shape->precision

`(shape->precision shape)`

Estimates the precision which generates geohash regions on the scale of the given shape.

### significant-bits

`(significant-bits geohash)`

### southern-neighbor

`(southern-neighbor h)`

### square-ring

`(square-ring origin n)`

Given a geohash at the northeast corner of a square (n-2) geohashes on a side, returns a list of geohashes in a path around the square, such that the first entry in the list is the northeast corner of a square (n) geohashes on a side. O is the origin argument F is the first hash in the returned sequence L is the last hash in the returned sequence E represents the last *and* first in the sequence n=1 3 5 7 +----LF +--LF | O| +LF | O| | | E |O| | | | | +-+ | | | | +---+ | | +-----+ If n is one, returns [origin]. This algorithm is undefined at the poles.

### string

`(string geohash)`

Returns the base32 encoded string value of a geohash.

### subdivide

`(subdivide geohash)`

`(subdivide geohash precision)`

Given a geohash, returns all geohashes inside it, of a given precision.

### subdivide-levels

`(subdivide-levels geohash min-precision max-precision)`

Given a geohash and a range of levels, return all geohashes inside the given geohash at all the levels in the range

### western-neighbor

`(western-neighbor h)`