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";
}

  

时间: 2024-10-24 02:43:22

PHP之路——geohash查找附近的人的相关文章

七日Python之路--无关Python(混人乱语,不看也罢)

2014年08月06日的下午,内心压制不住的狂躁抑或浮躁.莫名的感到很多无形的压力,以至于感觉自己似乎快要死去. 怎么说呢,前些日子情人节.自己鼓足勇气去见了自己内心喜欢的女生,当然她也是知道的.我们大二还是大三认识的,差不多有两年多了吧.大学不在一个学校,还有一个原因就是她那时有男朋友,但跟男朋友的时分时合.自己由于种种原因,跟她联系也不是太多.后来毕业,自己考研失败,当然这其中全是自己的问题,既然自己做出了选择便没有什么谈论后悔的资格.后来知道她考上了研究生.而我则在青岛找了一家小公司做起了

查找附近的人。

这次和于大山写了个查找附近的人,功能是使用同一软件的人可以将地理位置信息上传到服务器,其他人可通过查找的功能将指定距离内的人的相关信息(包括地理位置信息)查找出来. 其实没什么技术含量,整个工程中最核心的地方就是用到了百度地图提供的lbs接口,通过这个接口访问百度地图提供的数据库,可以实现对表的增删改查等命令,也可以精确的计算gps之间的距离. 工程分为服务器与客户端,客户端可以上传GPS信息,服务器可以通过上传的信息对数据库的GPS进行更新与添加,客户端可以通过发送GPS定位信息让服务器返回附

查找附近的人-1

<?php  require_once('geohash.class.php'); $geo=new Geohash; $gps=array(); for($i=0;$i<=100;$i++){  $g=array((rand(1000000,1001000)/100000),(rand(2000000,2001000)/100000));     $gps[]=$g; } foreach ($gps as $k => $v) {  echo $encode=$geo->encod

使用elasticsearch1.5.2实现查找附近的人

pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <m

python之路——二分查找算法

楔子 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] 你说,so easy! l.index(66)... 我们之所以用index方法可以找到,是因为python帮我们实现了查找方法.如果,index方法不给你用了...你还能找到这个66么? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,

进化:一个平庸人的互联网之路

进化:一个平庸人的互联网之路 现在互联网在现实生活中应用十分广泛,更为确切的说互联网已经融入了21世纪绝大多数平庸人的生活中.互联网已经是日常生活的重要组成部分.在互联网上能够浏览最新新闻.聊天.玩游戏.查阅资料.能够编辑站点供人訪问.能够分享源码等,更为重要的是在互联网上还能够进行广告宣传和购物.互联网给现实生活带来非常大的便利,广大网民在互联网上能够在数字知识库里寻找自己学业上.事业上的所需,从而帮助网民的工作与学习. 刚刚过去这场双十一网购狂欢中.透过行业老大阿里巴巴交出的实时"票房&qu

邁向IT專家成功之路的三十則鐵律 鐵律九:IT人社群互動之道-縮小自己

身為一位專業的IT人士所要學習的東西實在非常的多,然而對於時間相當有限的我們,最快速的學習方法就是向他人學習,而向他人學習的首要態度就是「縮小自己」.唯有將自己縮小到別人的眼睛裡,才能夠讓他們真心誠意的無私指導我們.正所謂教學相長,只要在如今網路社群的良好互動下,你.我.他皆能獲得滿滿的收穫. 俗話說的好:「人要活到老學到老」,只是我們不僅要學到老還要學的有效率.至於身為一位專業IT工作者的我們,什麼樣的學習方法才是最有效率呢?答案絕對不是要你去猛K死K許多官方的技術白皮書與原文技術文件,而是先

C++写geohash

http://www.cnblogs.com/LBSer/p/3310455.html http://www.sxrczx.com/pages/my.oschina.net/853294317/blog/296594.html http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=5300 受朋友委托写个查找附近人的算法,当然是不会写,不知道从何下手,于是学习了下geohash算法.看懂后开始一步步实现,当然还没有完全写完.

Redis 到底是怎么实现“附近的人”这个功能的呢?

作者简介 万汨,饿了么资深开发工程师.iOS,Go,Java均有涉猎.目前主攻大数据开发.喜欢骑行.爬山. 前言:针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG.MySQL和MongoDB等多种DB的空间索引进行实现.而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率.本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度. 要提供完整的“附近的人”服务,最基本的是要实现“增”.“删”.“查”的功能.以下将分别进行介绍,