blob: a256f28974588b816368a23e0ceaf2bb5c159f6e [file] [log] [blame]
Silvio Heubergerb95c5832008-12-29 15:59:17 +01001java code for geohashes
Silvio Heuberger86a8e9f2010-04-06 10:46:49 +02002=======================
Silvio Heubergerb95c5832008-12-29 15:59:17 +01003
Silvio Heubergere7f555d2010-03-29 10:30:10 +02004An implementation of Geohashes in pure Java.
5The produced hashes, when using character precision (multiples of 5 bits) are compatible
6to the reference implementation geohash.org.
Silvio Heubergerb95c5832008-12-29 15:59:17 +01007
Silvio Heuberger9dd0da72010-04-06 09:36:28 +02008You can however also encode Geohashes down to the full available precision of a long i.e. 64 bits.
9
Silvio Heubergerb95c5832008-12-29 15:59:17 +010010
Silvio Heuberger86a8e9f2010-04-06 10:46:49 +020011Building/Testing the code
12-------------------------
13
Silvio Heuberger890565f2011-01-08 11:28:44 +010014The geohash-java code can be built using Apache Ant or Apache Maven.
15Ant targets that are available:
Silvio Heuberger86a8e9f2010-04-06 10:46:49 +020016
Silvio Heuberger203675f2011-01-11 09:12:37 +010017 - clean # wash dishes.
18 - compile # compile the main source code.
19 - test # (default) run the unit tests.
20 - jar # pack a jar archive with the compiled class files.
21 - zip # pack a zip archive with the compiled binaries, source code and all other files.
Silvio Heuberger86a8e9f2010-04-06 10:46:49 +020022
Silvio Heuberger890565f2011-01-08 11:28:44 +010023Maven targets are the usual suspects.
24
25 - compile
26 - test
Silvio Heuberger203675f2011-01-11 09:12:37 +010027 - package # pack a versioned jar containing the compiled class files
Silvio Heuberger86a8e9f2010-04-06 10:46:49 +020028
Silvio Heubergere7f555d2010-03-29 10:30:10 +020029TODO
30----
31
32Current development involves getting the following things to run:
33
34- a method to find the n closest hashes to any given point.
Silvio Heubergere7f555d2010-03-29 10:30:10 +020035
36
37Last important changes
38----------------------
39
Silvio Heuberger7f6afab2013-08-23 14:46:36 +020040Version 1.0.8
41-------------
42
43- Changed the code in VincentyGeodesy not to stumble over the fact that NaN == NaN will always return false
44
Silvio Heubergere72e34c2011-07-18 10:58:55 +020045Version 1.0.6
46-------------
47
48- Added a small fix that keeps VincentyGeodesy#moveInDirection() from returning wrong values when moving large distances. [submitted by André Kischkel]
49
Silvio Heubergerd1f443e2011-03-15 16:30:01 +010050Version 1.0.5
51-------------
52
53- Added next(), next(step) and prev() methods to Geohash.
54- Added fromBase32() and toBase32() to TwoGeoHashBoundingBox.
55- Cleaned up the entire source tree using clearly defined settings.
56
Silvio Heuberger41a5c572011-01-11 23:24:27 +010057Version 1.0.4
58-------------
59
60- Added/fixed the methods toBinaryString() and Geohash.fromBinaryString() that can encode and decode a geohash into a simple String of 0s and 1s.
61- Also added test code for those methods.
62
Silvio Heubergera3452b42011-01-11 15:53:52 +010063Version 1.0.3
64-------------
65
66- Classes containing data are now Serializable.
67
Silvio Heuberger890565f2011-01-08 11:28:44 +010068Version 1.0.2
69-------------
70
71- Merged Kevins [ktcorby] code that yields all the geohashes in a bounding box, at a given resolution.
Silvio Heuberger203675f2011-01-11 09:12:37 +010072- Merged Chris' [cchandler] code to encode and decode geohashes from a binary string.
Silvio Heuberger890565f2011-01-08 11:28:44 +010073
74Version 1.0.1
75-------------
76
77- Fixed issue #2 from Github:
Silvio Heubergere7f555d2010-03-29 10:30:10 +020078 - Neighbouring hashes can be calculated by using the getAdjacent() method, which yields a hashes 8 neighbors.
79 - northern, eastern, western and southern neighbours can be determined using the respective methods.
80
Silvio Heuberger890565f2011-01-08 11:28:44 +010081- Fixed issue #1 from Github:
Silvio Heuberger9dd0da72010-04-06 09:36:28 +020082 - A bug caused different hashes to be yielded sometimes.
83
84
85License
86-------
87
88This code has been placed under the LGPL. See the LICENSE file for more information.
89Please contribute improvements and bug fixes back via github.