Package org.locationtech.spatial4j.io
Class GeohashUtils
- java.lang.Object
-
- org.locationtech.spatial4j.io.GeohashUtils
-
public class GeohashUtils extends java.lang.ObjectUtilities for encoding and decoding geohashes.This class isn't used by any other part of Spatial4j; it's included largely for convenience of software using Spatial4j. There are other open-source libraries that have more comprehensive geohash utilities but providing this one avoids an additional dependency for what's a small amount of code. If you're using Spatial4j just for this class, consider alternatives.
This code originally came from Apache Lucene, LUCENE-1512.
-
-
Field Summary
Fields Modifier and Type Field Description private static char[]BASE_32private static int[]BASE_32_IDXprivate static int[]BITSprivate static double[]hashLenToLatHeightSee the table at http://en.wikipedia.org/wiki/Geohashprivate static double[]hashLenToLonWidthSee the table at http://en.wikipedia.org/wiki/Geohashstatic intMAX_PRECISION
-
Constructor Summary
Constructors Modifier Constructor Description privateGeohashUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Pointdecode(java.lang.String geohash, SpatialContext ctx)Decodes the given geohash into a longitude (X) and latitude (Y)static RectangledecodeBoundary(java.lang.String geohash, SpatialContext ctx)Returns min-max lon (X), min-max lat (Y).static java.lang.StringencodeLatLon(double latitude, double longitude)Encodes the given latitude and longitude into a geohashstatic java.lang.StringencodeLatLon(double latitude, double longitude, int precision)static java.lang.String[]getSubGeohashes(java.lang.String baseGeohash)Array of geohashes 1 level below the baseGeohash.static double[]lookupDegreesSizeForHashLen(int hashLen)static intlookupHashLenForWidthHeight(double lonErr, double latErr)Return the shortest geohash length that will have a width & height >= specified arguments.
-
-
-
Field Detail
-
BASE_32
private static final char[] BASE_32
-
BASE_32_IDX
private static final int[] BASE_32_IDX
-
MAX_PRECISION
public static final int MAX_PRECISION
- See Also:
- Constant Field Values
-
BITS
private static final int[] BITS
-
hashLenToLatHeight
private static final double[] hashLenToLatHeight
See the table at http://en.wikipedia.org/wiki/Geohash
-
hashLenToLonWidth
private static final double[] hashLenToLonWidth
See the table at http://en.wikipedia.org/wiki/Geohash
-
-
Method Detail
-
encodeLatLon
public static java.lang.String encodeLatLon(double latitude, double longitude)Encodes the given latitude and longitude into a geohash- Parameters:
latitude- Latitude to encodelongitude- Longitude to encode- Returns:
- Geohash encoding of the longitude and latitude
-
encodeLatLon
public static java.lang.String encodeLatLon(double latitude, double longitude, int precision)
-
decode
public static Point decode(java.lang.String geohash, SpatialContext ctx)
Decodes the given geohash into a longitude (X) and latitude (Y)
-
decodeBoundary
public static Rectangle decodeBoundary(java.lang.String geohash, SpatialContext ctx)
Returns min-max lon (X), min-max lat (Y).
-
getSubGeohashes
public static java.lang.String[] getSubGeohashes(java.lang.String baseGeohash)
Array of geohashes 1 level below the baseGeohash. Sorted.
-
lookupDegreesSizeForHashLen
public static double[] lookupDegreesSizeForHashLen(int hashLen)
-
lookupHashLenForWidthHeight
public static int lookupHashLenForWidthHeight(double lonErr, double latErr)Return the shortest geohash length that will have a width & height >= specified arguments.
-
-