Geography Reference
In-Depth Information
Fig. 20.4 The hierarchical structure of Geohash grids progressively refines spatial granularity as
the length of Geohash strings increases (Geohash). Geohash strings are highly efficient in coding
spatial precision as compared to latitude and longitude pairs as well as other Cartesian coordinate
systems
quad balanced structure (Tong et al. 2010 ), equal-areal cells (Beckers and Beckers
2012 ), and many other partitioning and subdivision systems (Lu et al. 2012 ).
Any of the geographic coordinate systems or discrete global grid systems may
serve the purpose of spatial ordering. One particular example is Geohash system
(Geohash n.d.) that constitutes string-based prefixes as keys for coordinate sets in a
hierarchical grid system (Fig. 20.4 ).
Geohash was invented by Gustavo Niemeyer to create a concise spatial indexing
and data caching system for web services. Geohash is essentially a latitude and
longitude geocode system that interleaves bits obtained from latitude-longitude
pairs and converts the bits to a Geohash string using Base 32 character map. For
example, the latitude-longitude pair (35.18, 97.44) falls in the box with Geohash
code 9y68nuckb with approximately 2 m precision at Level 9. The string length
(e.g. level) of a Geohash code corresponds to the size of spatial granule. Generally
speaking, points closer to each other are likely to have longer common prefixes in
their Geohash codes. In most cases, all adjacent Geohash boxes only differ in the
last digit of their Geohash codes, except for the edge boxes that adjacent boxes have
different codes in the last two digits (Fig. 20.5 ). Exceptions also include Geohash
boxes near the Equator and Greenwich Meridian. 1 The hierarchical organization of
Geohash codes facilitates rapid data grouping and efficient proximity search to meet
computational demands (Balkic et al. 2012 ). Geohash grids have been implemented
in Google Map, MySQL, PostGIS and MongoDB as well as libraries or modules
for Java, Javascript, Python, Perl, PHP, Pure Ruby, C, and many other programming
languages.
1 The issue is referred to as Geohash faultlines. Algorithms have been developed to address the
faultline issues in spatial search. One algorithm with its source code is available at http://code.
google.com/p/geohash-fcdemo/
Search WWH ::




Custom Search