类似微信的搜索附近的人的功能 在 服务端的实现
前提:根据两个点的经度和纬度计算两点之间的距离,公式见 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公里区域的用户
此外通过将冷热数据分开存放及 分块存放 用户地理数据应该能有效的提高查询速度
相关推荐
现在,我们的智能家居系统已经基本实现了整体架构,包括服务器端、Web网页、Android手机客户端以及各种测试脚本,这些部分都已经可以进行实际调试。不过,由于我们的精力有限,智能控制部分仍在合作开发中。 智能...
以及 Web 端管理系统,利用 Android 内置的传感器采集人体行为数据,在服务器端完成 算法建模以及实时识别等耗能工作。该系统的实现囊括了行为识别系统或者说基础的机 器学习工程的多个核心部分,具有实际的工程...
2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
手机APP连接上ESP8266创建的WIFI热点和TCP服务器,可以在手机APP上对设备端的RTC时间进行校准,设备唯一ID获取,生成随机开锁密码。 (2)随机密码开锁。手机APP与本地设备采用时间、作为算法种子,采用算法生成...
优化音量大小的回调算法,音量回调数值更加合理。 发送自定义音频、视频数据支持外部指定数据帧时间戳。 增加混流 setMixTranscodingConfig API 的设置回调函数。 强化 setMixTranscodingConfig 接口,支持 roomID ...
以及 Web 端管理系统,利用 Android 内置的传感器采集人体行为数据,在服务器端完成 算法建模以及实时识别等耗能工作。该系统的实现囊括了行为识别系统或者说基础的机 器学习工程的多个核心部分,具有实际的工程...
同时支持4路CIF高质量录像 同时4路PC/4路手机端/2路音频同时编码 支持4路现场报警输入和2路报警输出输出 支持移动帧检测 / 手机SMS报警通知 支持云台控制 支持远程控制 支持双向语音对讲 支持图像屏蔽/图像抓拍 ...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化。 5、同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端;
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
用户可以通过手机直接把自己想要订的外卖存入数据库中,商 店的服务器端只需要少数管理人员来处理订单。 用户可以通过手机随时随地订外卖,方便快捷,并且高效。 2 2.2 产品的功能 本预订系统包括Web端和Android...
2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...
2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...
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真机效果...
微信服务器每次都会将用于识别该用户身份的唯一ID发过来,同时也会将公众帐号的唯一标识也发过来,提交按钮上方的文本框中显示的就是模拟微信服务器提交到我们WEB服务器上的内容,你可以看到FromUserName和ToUserName...
大学生创业项目_垃圾短信过滤APP电信诈骗...后端使用scikit-learn模块(数据挖掘和数据分析工具),通过其朴素贝叶斯算法API对短信数据进行垃圾短信的识别: 导入中文垃圾短信数据集(80w数据 有垃圾短信和非垃圾短信)