`
1028826685
  • 浏览: 920195 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

手机端和Web服务器端计算附近人或商家算法

 
阅读更多

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

 

前提:根据两个点的经度和纬度计算两点之间的距离,公式见  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.htmlhttp://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公里区域的用户


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

分享到:
评论

相关推荐

    智能家居架构包括服务器端web网页android 手机客户端各种测试脚本基本上基础架构都已经实现

    现在,我们的智能家居系统已经基本实现了整体架构,包括服务器端、Web网页、Android手机客户端以及各种测试脚本,这些部分都已经可以进行实际调试。不过,由于我们的精力有限,智能控制部分仍在合作开发中。 智能...

    行为识别系统研究与应用_曹亮.caj

    以及 Web 端管理系统,利用 Android 内置的传感器采集人体行为数据,在服务器端完成 算法建模以及实时识别等耗能工作。该系统的实现囊括了行为识别系统或者说基础的机 器学习工程的多个核心部分,具有实际的工程...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    java源码包3

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    基于STM32设计的动态密码锁(带手机APP).zip

    手机APP连接上ESP8266创建的WIFI热点和TCP服务器,可以在手机APP上对设备端的RTC时间进行校准,设备唯一ID获取,生成随机开锁密码。 (2)随机密码开锁。手机APP与本地设备采用时间、作为算法种子,采用算法生成...

    腾讯云trtc实时音视频完整案例 音视频+共享屏幕直播

    优化音量大小的回调算法,音量回调数值更加合理。 发送自定义音频、视频数据支持外部指定数据帧时间戳。 增加混流 setMixTranscodingConfig API 的设置回调函数。 强化 setMixTranscodingConfig 接口,支持 roomID ...

    行为识别系统研究与应用_曹亮.pdf

    以及 Web 端管理系统,利用 Android 内置的传感器采集人体行为数据,在服务器端完成 算法建模以及实时识别等耗能工作。该系统的实现囊括了行为识别系统或者说基础的机 器学习工程的多个核心部分,具有实际的工程...

    hawk-鹰眼式监控系统立体监控系统.doc

    同时支持4路CIF高质量录像 同时4路PC/4路手机端/2路音频同时编码 支持4路现场报警输入和2路报警输出输出 支持移动帧检测 / 手机SMS报警通知 支持云台控制 支持远程控制 支持双向语音对讲 支持图像屏蔽/图像抓拍 ...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包---java 源码 大量 实例

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    一份关于Vue的面试题

    SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化。 5、同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端;

    java源码包2

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包4

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java安卓开发外卖订餐系统课程设计.doc

    用户可以通过手机直接把自己想要订的外卖存入数据库中,商 店的服务器端只需要少数管理人员来处理订单。 用户可以通过手机随时随地订外卖,方便快捷,并且高效。 2 2.2 产品的功能 本预订系统包括Web端和Android...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    基于Unity3D多平台网络斗地主的设计与实现毕业设计.doc

    23 5.6.2 粘包介绍及处理 23 第6章 发布和测试 25 6.1 服务器端性能检测 25 6.2 打包发布Android应用 27 6.2.1 导出Android设置 27 6.2.2 真机效果图 28 6.3 打包发布IOS应用 29 6.3.1导出IOS设置 29 6.3.2真机效果...

    微信开发调试小工具 v1.0.zip

    微信服务器每次都会将用于识别该用户身份的唯一ID发过来,同时也会将公众帐号的唯一标识也发过来,提交按钮上方的文本框中显示的就是模拟微信服务器提交到我们WEB服务器上的内容,你可以看到FromUserName和ToUserName...

    大学生创业项目-垃圾短信过滤APP电信诈骗识别拦截系统源码+项目说明.zip

    大学生创业项目_垃圾短信过滤APP电信诈骗...后端使用scikit-learn模块(数据挖掘和数据分析工具),通过其朴素贝叶斯算法API对短信数据进行垃圾短信的识别: 导入中文垃圾短信数据集(80w数据 有垃圾短信和非垃圾短信)

Global site tag (gtag.js) - Google Analytics