/jgeohash

An easy-to-implement library for the GeoHash algorithm

Primary LanguageJavaApache License 2.0Apache-2.0

Overview

build status Java CI build and test Coverage Status Coverage Status open issues license apache2 Donate

An easy-to-implement library that can assist Java developers in using the GeoHash algorithm in order to create geocodes based on custom latitude and longitude values.

With the help of jGeohash, Java developers will be able to quickly and easily generate a geohash code using user-defined latitude and longitude values. By using the GeoHash algorithm, the space can be divided into multiple grid shapes.

This library is a basic implementation from the GeoHash algorithm written in the java and can be applied to generate from the latitude and longitude a geohash code and reverse.

The library is kept simple and have no dependencies to other libraries.

Please support this project by simply putting a Github Star ⭐. Share this library with friends on Twitter and everywhere else you can. If you love this project donation

Note

No animals were harmed in the making of this library.

Donations

This project is kept as an open source product and relies on contributions to remain being developed. If you like this library, please consider a donation

over paypal:

PayPal this

or over bitcoin(BTC) with this address:

bc1ql2y99q7e8psndhcc3gferk03esw3qqf677rhjy

Donation Bitcoin Wallet

or over FIO with this address:

FIO7tFMUVAA9cHiPPqKMfMXiSxHrbpiFyRYqTketNuM67aULuwjop

Donation FIO Wallet

or over Ethereum(ETH) with:

0xc057D159D3C8f3311E73568b334FF6fE82EB2b7D

Donation Ethereum Wallet

or over Ethereum Classic(ETC) with:

0xF708cA86D86C246B69c3F4BAe431eBbe0c2bfddD

Donation Ethereum Classic Wallet

or over Dogecoin(DOGE) with:

D5yi4Um8cpakd6yPRm2hGWuQ5nrVzhSSW1

Donation Dogecoin Wallet

or over Monero(XMR) with:

49bqeRQ7Bf49oJFVC72pqpe5hFbb62pfXDYPdLsadGGF81KZW2ZfrPZ8PbAVu5X2v1TYAspeczMya3cYQysNS4usRRPQHVw

Donation Monero Wallet

or over flattr:

Flattr this

Key features:

  1. Very small size (<35Kb)
  2. Can get the adjacent geohash area from the given direction
  3. Can get the geohash from an ip address
  4. Can calculate distance between two geohash values in various measuring units like miles, km, meters
  5. Can get the geohash cells around from the first, second or thrird ring from a given geohash cell

License

The source code comes under the liberal Apache License V2.0, making jgeohash great for all types of applications.

Maven Central

Maven Central jgeohash-core

Maven Central jgeohash-geoip

javadoc

Javadocs jgeohash-core

Javadocs jgeohash-geoip

javadoc

jgeohash-core Javadocs

jgeohash-geoip Javadocs

Maven dependency

Maven dependency is now on sonatype. Check out sonatype repository for latest snapshots and releases.

You can add the following maven dependencies to your project pom.xml if you want to import the library.

You can first define the version properties:

<properties>
	...
	<!-- JGEOHASH version -->
	<jgeohash.version>2.5.2</jgeohash.version>
	<jgeohash-core.version>${jgeohash.version}</jgeohash-core.version>
	<jgeohash-geoip.version>${jgeohash.version}</jgeohash-geoip.version>
	...
</properties>

Add the following maven dependency to your project pom.xml if you want to import the core functionality of jgeohash:

	<dependencies>
		...
        <!-- JGEOHASH-CORE DEPENDENCY -->
		<dependency>
			<groupId>de.alpharogroup</groupId>
			<artifactId>jgeohash-core</artifactId>
			<version>${jgeohash-core.version}</version>
		</dependency>
	</dependencies>

Add the following maven dependency to your project pom.xml if you want to import the geoip functionality of jgeohash:

	<dependencies>
		...
        <!-- JGEOHASH-GEOIP DEPENDENCY -->
		<dependency>
			<groupId>de.alpharogroup</groupId>
			<artifactId>jgeohash-geoip</artifactId>
			<version>${jgeohash-geoip.version}</version>
		</dependency>
	</dependencies>

Semantic Versioning

The versions of jgeohash are maintained with the Semantic Versioning guidelines.

Release version numbers will be incremented in the following format:

<major>.<minor>.<patch>

For detailed information on versioning for this project you can visit this wiki page.

Want to Help and improve it?

The source code for jGeohash are on GitHub. Please feel free to fork and send pull requests!

Create your own fork of astrapi69/jgeohash/fork

To share your changes, submit a pull request.

Don't forget to add new units tests on your changes.

Contacting the Developer

Do not hesitate to contact the jgeohash developers with your questions, concerns, comments, bug reports, or feature requests.

  • Feature requests, questions and bug reports can be reported at the issues page.

Examples

Similar projects

Here is a list of awesome projects that uses geohash:

  • geohash-java Another implementation of Geohashes in pure Java.
  • geo Geohash utitlies in java

Blogs

Useful links

Change log

The changelog is moved in its own file. It can be found on following page

Credits

Travis CI
Travis CI
build status
Special thanks to Travis CI for providing a free continuous integration service for open source projects
Nexus Sonatype repositories
sonatype repository jgeohash-core
sonatype repository jgeohash-geoip
Special thanks to sonatype repository for providing a free maven repository service for open source projects
coveralls.io
Coverage Status
Special thanks to coveralls.io for providing a free code coverage for open source projects
javadoc.io
Javadoc jgeohash-core
Javadoc jgeohash-geoip
Special thanks to javadoc.io for providing a free javadoc documentation for open source projects