saikiran / geohash
将地理坐标编码为字母和数字的字符串的Geohash算法
v1.0.1
2020-07-25 17:30 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2024-08-29 04:37:14 UTC
README
Geohash是一个PHP模块,提供了以下功能。
- 将地理位置编码为短字符串的字母和数字。
- 将字母和数字字符串解码为经纬度。
- 识别提供的geohash的相邻geohash。
安装
安装PHP Geohash最简单的方式是使用composer。在Packagist上找到它。
$ composer require saikiran/geohash
用法
编码坐标
use Sk\Geohash\Geohash;
$g = new Geohash();
echo $g->encode(17.38000000, 78.42000000, 5);
结果是
tepfb
将geohash解码为地理坐标
use Sk\Geohash\Geohash;
$g = new Geohash();
$coordinates = $g->decode("tepfb", 5);
echo "latitude : " . $coordinates[0] . ", longitude : " . $coordinates[1];
结果是
latitude : 17.38, longitude : 78.42
获取geohash的8个邻居的geohash
use Sk\Geohash\Geohash;
$g = new Geohash();
$hash = $g->encode(25.813646, -80.133761, 7);
$neighbors = $g->getNeighbors($hash);
echo "Hash: $hash\n";
echo "Neighbors: " . json_encode($neighbors) . "\n";
结果是
Hash:
Neighbors: {"North":"dhx4be2","East":"dhx4be1","South":"dhx4bdb","West":"dhx4b7p","NorthEast":"dhx4be3","SouthEast":"dhx4bdc","SouthWest":"dhx4b6z","NorthWest":"dhx4b7r"}
运行单元测试
从您的项目文件夹转到这个目录
$ cd vendor/saikiran/geohash
然后运行这两个命令
$ composer install
$ vendor/bin/phpunit tests