You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong/vendor/lvht/geohash
wanghousheng 8c41c84c32 1 10 months ago
..
src 1 10 months ago
.gitignore 1 10 months ago
LICENSE 1 10 months ago
README.md 1 10 months ago
composer.json 1 10 months ago

README.md

GeoHash

Simple php geohash class like python-geohash.

Getting Started

Install

composer require lvht/geohash

System Requirements

You need PHP >= 5.4.0.

Usage

Encode a coordinate:

use Lvht\GeoHash;
echo GeoHash::encode(117.031689,36.65396);

The result is wwe0x0euu12.

The default precision is 0.00001 which can be changed by the third parameter of encode method.

Find the neighbors for a given geohash:

use Lvht\GeoHash;
var_dump(GeoHash::expand('wwe0x0'));

and the result is:

array(8) {
  [0] =>
  string(11) "wwe0wc7zzzz"
  [1] =>
  string(11) "wwe0x17zzzz"
  [2] =>
  string(11) "wwe0x37zzzz"
  [3] =>
  string(11) "wwe0wb7zzzz"
  [4] =>
  string(11) "wwe0x27zzzz"
  [5] =>
  string(11) "wwe0qz7zzzz"
  [6] =>
  string(11) "wwe0rp7zzzz"
  [7] =>
  string(11) "wwe0rr7zzzz"
}

Decode a geohash string:

Use Lvht\GeoHash;
var_dump(GeoHash::decode('wwe0x0'));

and the result is:

array(4) {
  [0] =>
  double(117.0263671875)    # min longitude
  [1] =>
  double(117.03735351562)   # max longitude
  [2] =>
  double(36.650390625)      # min latitude
  [3] =>
  double(36.655883789062)   # max latitude
}