PHP之路——geohash查找附近的人

Posted 偏执Code

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP之路——geohash查找附近的人相关的知识,希望对你有一定的参考价值。

<?php
	
class location
{
	public function getLat($number, $small, $big,  $temp = 20){
		$temp--;
		$average = ($big + $small) / 2;
		if ($temp == 0) {
			if ($average <= $number) {
				return ‘1‘;
			} else {
				return ‘0‘;
			}
		}
		if ($average <= $number) {
			return ‘1‘ . $this->getLat($number, $average, $big, $temp);
		} else {
			return ‘0‘ . $this->getLat($number, $small, $average, $temp);
		}
	}

	public function joinStr($lat, $lon){
		$len = strlen($lat);
		$str = ‘‘;
		for ($i=0; $i < $len; $i++) { 
			$str .= $lon[$i] . $lat[$i];
		}
		return $str;
	}
}

$location = new location();
$lat = $location->getLat(39.92324, -90, 90);
$lon = $location->getLat(116.3906, -180, 180);
$str =  $location->joinStr($lat, $lon);
for ($i=0; $i <strlen($str) / 5 ; $i++) { 
	$code[$i] = bindec(substr($str, $i * 5, 5));
}
foreach ($code as $key => $value) {
	echo $value . "\n";
}

  

以上是关于PHP之路——geohash查找附近的人的主要内容,如果未能解决你的问题,请参考以下文章

查找附近点--Geohash方案讨论

Redis——GeoHash查找附近的人

vertx+redis实现查找附近的人

ABAP实现Geohash

周围的餐馆有哪些?GeoHash算法

附近的人,附近的卖家(geohash+前缀树)