写一个思想记录,以免忘记,关于nearby

获取数据 get_post -> pageindex / pagesize / times

$base_offset = 0.0006; //最小基准范围
$times = 0; //最小扩大范围倍数
pic_cou = 0; //照片数量

//从最小范围开始,慢慢扩大范围,直到照片数量够取为止,
while(pic_cou < pageindex*pagesize)
{
$times ++; //增加范围
$now_offset = &times * $base_offset;
$pic_cou = $query->count( dblat < lat + $now_offset && dblng < lng + $now_offset && dblat >lat - $now_offset && dblng > lng - $now_offset );
}

//取出照片
$pic_arr = $query->get( dblat < lat + $now_offset && dblng < lng + $now_offset && dblat >lat - $now_offset && dblng > lng - $now_offset );
//循环获取距离
foreach($pic_arr as $key => $val)
{
$picture = $this->get_app_home_picture_data_new($val); //将数据转换成所需的字段
$distance = $this->getDistanceBetweenPointsNew($val[‘addressy‘] , $val[‘addressx‘] , $lat, $lng);//计算距离
$picture[‘meter‘] = $distance[‘meters‘]; //存入返回数据的所需字段
$data[] = $picture; //合并数据,改数据为目标数据
}

$data=array_sort($data,‘meter‘); // 排序
$arr = array_slice($arr,0,10); // 取出所需个数

第一版 思想 -------- 给定一个坐标位置,从最小范围(如100米)开始往外扩大范围,直到查询出来的数量与客户端请求数量匹配为止。每次轮询的查询结果不记录下来,只查询数量,数量足够再同意往数据库请求数据。
第二版 思想 -------- 增加缓存,每次轮询直接查询数据,然后判断数量是否足够,若不够则继续取。注意,每取一次都会计算距离,并将数据集记录合并,最后将其缓存或存入数据库,以便下次请求时不需要再重复计算。

写的乱七八糟的,过几天赶紧把代码敲出来试试看

时间: 2024-11-05 18:30:56

写一个思想记录,以免忘记,关于nearby的相关文章

【转载】如何写一个框架:步骤(下)

说明:写本文的时候作者完全是把脑子里的东西写了出来,没有参考任何的资料,所以对于每一项内容可能都是不完整的,不能作为一个完整的参考.有一些方法学的东西每个人都有自己的喜好,没有觉得的对和错. 单元测试 在这之前我们写的框架只能说是一个在最基本的情况下可以使用的框架,作为一个框架我们无法预测开发人员将来会怎么使用它,所以我们需要做大量的工作来确保框架不但各种功能都是正确的,而且还是健壮的.写应用系统的代码,大多数项目是不会去写单元测试的,原因很多: 项目赶时间,连做一些输入验证都没时间搞,哪里有时

Java面试题从零开始:写一个函数把字符串反转

前言:为了能够找一个代表我从零开始的诗词,我挖空心思去找,然而怎么也找不到一个贴合我心意的,被迫上了度娘也不曾找到.真想把小学一年级的语文课本拿出来好好的通读一遍,肯定能找到答案. 好了,既然找不到也不必耿耿于怀了.今天读了<高效能程序员的修炼>第四章,发现自己好烂,如果按照作者的看法,我是无论如何都入不了他的法眼,于是乎,我告诉自己,从零开始,把作者提出的面试题按照Java来写一遍,无论是参考别人还是自己略能想得到的办法,亲自动手把它们敲出来,并且记录下来吧! 写一个函数把字符串反转,作为本

写一个框架的详细步骤

定位 所谓定位就是回答几个问题,我出于什么目的要写一个框架,我的这个框架是干什么的,有什么特性适用于什么场景,我的这个框架的用户对象是谁,他们会怎么使用,框架由谁维护将来怎么发展等等. 如果你打算写框架,那么肯定心里已经有一个初步的定位,比如它是一个缓存框架.Web MVC框架.IOC框架.ORM/数据访问框架.RPC框架或是一个用于Web开发的全栈式框架. 是 否要重复造轮子?除非是练手项目,一般我们是有了解决不了问题的时候才会考虑不使用既有的成熟的框架而重复造轮子的,这个时候需要列出新框架主

王垠:怎样写一个解释器

卖了好久关子了,说要写一个程序语言理论的入门读物,可是一直没有下笔.终于狠下心来兑现一部分承诺.今天就从解释器讲起吧. 解释器是比较深入的内容.虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它的知识,但是这篇教程并不是针对函数式编程的入门,所以我假设 你已经学会了最基本的 Scheme 和函数式编程.如果你完全不了解这些,可以读一下< SICP | 计算机程序的构造和解释> 的第一,二章.当然你也可以继续读这篇文章,有不懂的地方再去查资料.我在这里也会讲递归和模式匹配的原理.如果你已经

如何写一个框架

定位 所谓定位就是回答几个问题,我出于什么目的要写一个框架,我的这个框架是干什么的,有什么特性适用于什么场景,我的这个框架的用户对象是谁,他们会怎么使用,框架由谁维护将来怎么发展等等. 如果你打算写框架,那么肯定心里已经有一个初步的定位,比如它是一个缓存框架.Web MVC框架.IOC框架.ORM/数据访问框架.RPC框架或是一个用于Web开发的全栈式框架. 是否要重复造轮子?除非是练手项目,一般我们是有了解决不了问题的时候才会考虑不使用既有的成熟的框架而重复造轮子的,这个时候需要列出新框架主要

HTML+JS 写一个 个人博客

HTML+JS 写一个 个人博客(初学版) HTML+JS 写一个 个人博客(初学版) 自己琢磨了两三天,算是把HTML入门了吧,然后就想着用这点知识写一个个人主页,然后一下午的时间写完了. 先不看代码,说说思路: 第一步:就是构思,一个网页的展示怎么才好看?!!站在一个老男人的角度,那远远是不能的,,, 1.标题 2.菜单栏(加个超链接) 3.展示页面(图片轮播) 第二步:小标题展示页面. 第三步:代码实现.(说了一堆废话)  代码 Jscript实现图片轮播.(很简单,一看就懂) <scri

########django-基于中间件写一个限制频繁登陆########

django-基于中间件写一个限制频繁登陆 额额,标题已经很醒目了,通过中间件去实现,其他方法也可以实现 浏览器前端传来的请求,必须通过中间件,才能到后面路由,视图函数,所以我们在中间件那里做一层处理, 我们还需要知道是哪个ip,在什么时候,请求了几次,这些数据是要知道,并且记录下来,所以我创建了一个 表,来存放这些信息数据 models文件: class Host_info(models.Model): host = models.CharField(max_length=32) count

Webpack-源码三,从源码分析如何写一个plugin

经过上一篇博客分析webpack从命令行到打包完成的整体流程,我们知道了webpage的plugin是基于事件机制工作的,这样最大的好处是易于扩展.社区里很多webpack的plugin,但是具体到我们的项目并不一定适用,这篇博客告诉你如何入手写一个plugin,然后分析源码相关部分告诉你你的plugin是如何工作.知其然且知其所以然. 该系列博客的所有测试代码. 从黑盒角度学习写一个plugin 所谓黑盒,就是先不管webpack的plugin如何运作,只去看官网介绍. Compiler和Co

使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

设计思想 定义一个静态字段,在构造函数中写一个静态字段自家的语句,这样,因为静态字段不会因为在此调用而改变数值所以可以计算建立对象的个数. 源代码 //使用静态字段和构造函数跟踪对象 package bao; public class sum { public static int a=0; int c; public sum(int cc) { c=cc; a++; } public int get() { return a; } } package bao; public class D_X