类似微信的搜索附近的人的功能 在 服务端的实现

前提:根据两个点的经度和纬度计算两点之间的距离,公式见  http://en.wikipedia.org/wiki/Haversine_formula 
思路 1)每个用户在服务器端都会保留最后的经度和纬度和时间
查找时,根据当前用户的经度和纬度 对 服务器端 每个用户的经度和纬度 进行计算,有人把上述公式做成mysql 函数放在 sql语句中调用

CREATE DEFINER=`root`@`localhost` FUNCTION `distance`(lat1 float,lng1 float,lat2 float,lng2 float) RETURNS float
BEGIN
set @num=
2 * 6371 * ASIN(SQRT(POW(SIN(PI() * (lat1 - lat2) / 360), 2) + COS(PI() * lat1 / 180)
* COS(lat2* PI() / 180) * POW(SIN(PI() * (lng1 - lng2) / 360), 2)));
RETURN @num;
END
可参见 http://hi.baidu.com/jlzan1314/blog/item/26f47251611698551038c2de.html 及 http://blog.csdn.net/alexjames_83/article/details/4261403
很显然,这种方法计算量巨大,实际应用中除非数量很小,否则可以排除
思路2)基准线预先计算法
每个用户在服务器端都会保留最后的经度j1 和纬度w1 的同时 保留对经度基准线的相对距离 dj1 和纬度基准线的相对距离 dw1
经度基准线可以是中国最东边的经度  纬度基准线可以是中国最北边的纬度 ;


当前用户对经度基准线的相对距离 dj2 =230km 和纬度基准线的相对距离 dw2=350km
查找时sql语句可以这么写(1.5公里内的用户) 
select * from user where dj1>(230-1.5) and dj1<(230+1.5) and  dw1>(230-1.5) and dw1<(230+1.5)
相当于获得当前用户 周围正方形1.5公里区域的用户

此外通过将冷热数据分开存放及 分块存放 用户地理数据应该能有效的提高查询速度.

1 微信如何搜索附近的人?相关推荐

  1. uni-app的列表搜索框_微信怎么搜索小程序?小程序能有什么用?

    微信小程序发布三年多,如今很多人的日常生活已经离不开它.不过新手常常会遇到这样的情况:使用过某个小程序后,找不到它了:想要再次使用,不知道上哪儿去找.所以下面就跟大家科普下如何找到小程序,以及如何搜索 ...

  2. 微信seo搜索精准引流怎么做呢?(案例效果图)

    微信seo搜索精准引流怎么做呢?那你得先搞懂什么微信搜索精准引流? 通过微信搜一搜找相关问题答案的用户,腾讯公布的数据是每天有2亿多人在使用.也就是说这个量是非常大的. 那这么多人在使用,假如你公众号 ...

  3. 微信如何加满5000人?送你找群加群的6个渠道和10大方法!

    在微信营销中,微信群就是一个个鱼塘,而我们就是要寻找目标客户所在的微信群,并加入其中,把群友转化为自己的个人号好友(加满5000人),进而转化为客户. 我一直专研于微信粉丝增长这一领域,最近碰到很多朋 ...

  4. 支付宝、微信“重兵”搜索,小程序下半场或“变天”

    文 | 陈小江 来源 | 螳螂财经(ID:TanglangFin) 小程序又起风了. 近日,微信宣布"搜一搜"正式开放服务搜索接入.凡满足条件的商家在公众号后台配置"服务 ...

  5. CAD手机看图中怎么将编辑好的图纸文件微信发送给其他的人?

    CAD手机看图中怎么将编辑好的图纸文件微信发送给其他的人?现在有了手机相关的CAD辅助软件,我们可以轻松的进行查看编辑图纸,就算是没有电脑,也不会存在限制,那么在手机上,我们要是将图纸编辑好之后,想要 ...

  6. 小程序搜索框_微信怎么搜索小程序?小程序能有什么用?

    微信小程序已经发布了三年多,现在很多人在日常生活中离不开它.但是,新手经常会遇到这种情况:使用小程序后,他们找不到它:如果他们想再次使用它,他们不知道在哪里可以找到它.因此,以下内容将告诉您如何查找小 ...

  7. 白杨SEO:公众号、小程序微信服务搜索怎么做?搜一搜服务搜索排名规则解析

    新知达人, 白杨SEO:公众号.小程序怎么做微信服务搜索? 大纲如下: 1.搜一搜功能有哪些?品牌官方区怎么申请和条件? 2.微信搜一搜的服务搜索是什么? 3.微信公众号怎么做服务搜索? 4.微信小程 ...

  8. 微信怎么找回删除的人

    微信是我们生活中比较常用的社交软件,很多小伙伴都把微信作为最常用的情感联系方式,但有使用就会有意外情况,如果在一些突发情况下,不小心把微信好友删了呢,微信怎么找回删除的人呢?下面就一起来看看恢复微信好 ...

  9. android 字母搜索栏,android仿微信通讯录搜索示例(匹配拼音,字母,索引位置)

    前言: 仿微信通讯录搜索功能,通过汉字或拼音首字母找到匹配的联系人并显示匹配的位置 一:先看效果图 字母索引 搜索匹配 二:功能分析 1:汉字转拼音 通讯录汉字转拼音(首个字符当考虑姓氏多音字), 现 ...

  10. 微信全文搜索优化之路

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者: jiaminchen,微信终端开发团队的一员 本文首次发表在<程序员>杂志 2017 年 09 月期. 前言 基于本地 ...

最新文章

  1. 2021操作系统知识结构图
  2. 64位Win10安装Pytorch
  3. Error: cmd: Command failed with exit code ENOENT
  4. enum和enum class
  5. 【Luogu4921】情侣?给我烧了!(组合计数)
  6. Android5.1蓝牙电话分析及demo
  7. 牛腩新闻发布系统-概要介绍
  8. 裤子尺码对照表eur40_裤子尺码对照表
  9. 【产品】 产品设计:ID工业设计、MD结构设计、HW硬件设计和SW软件设计详解
  10. LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(三)之LayIM初始化数据
  11. 【数据结构—图】拓扑Topo排序
  12. 科技云报道:“Sky Computing”会是云计算未来的新方向吗?
  13. UGUI源码分析:GridLayoutGroup网格布局组件与ContentSizeFitter尺寸调节组件
  14. ext2和ext3的主要区别
  15. Java中出现[Ljava.lang.String的问题
  16. 力天创见人脸识别客流统计方案
  17. 微信公众平台开发(1)验证TOKEN源码
  18. 【英语:语法基础】B1.核心语法-名词与代词
  19. “动感”新春:香港高铁首次加入春运 车票抢手
  20. weblogic乱码问题解决

热门文章

  1. Java IO流关闭顺序
  2. 解决谷歌浏览器添加插件时显示程序包无效:“CRX_HEADER_INVALID“
  3. PS安装失败解决方法
  4. mybatis插件破解
  5. 小度智能音响拆解 芯片_拆机解析,小度智能音箱1S,万能遥控版音箱,这做工你想不到...
  6. 微信小程序实验一 ——— 简单计算器与秒表
  7. qq2018旧版本7.3.1下载_qq下载2020最新版下载安装-qq2020最新版下载V8.4.8-西西软件下载...
  8. Android8.0.0的BUG Only fullscreen opaque activities can request orientation
  9. 深扒Mobileye—与特斯拉分手,被英特尔收购,现在又成了蔚来的救星?
  10. 4.4 matlab三维曲线(plot3函数、fplot3函数)