一种在线用户分布的处理方法及装置制造方法

文档序号:7988224阅读:182来源:国知局
一种在线用户分布的处理方法及装置制造方法
【专利摘要】本发明涉及一种在线用户分布的处理方法,包括:获取一用于显示在线用户分布的地图;计算与所述地图最接近的投影算法;采用拟合算法获取从中间坐标至所述地图上的坐标的映射函数的近似解,所述中间坐标是根据经纬度及所述最接近的投影算法计算得到;根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标;根据所有在线用户在所述地图上的坐标统计在线用户在所述地图上的分布数据。本发明还提供一种在线用户分布的处理装置。利用本发明可以在未知投影算法的地图上显示在线用户的分布,具有更高的精确度和实时性。
【专利说明】一种在线用户分布的处理方法及装置
【技术领域】
[0001]本发明涉及网络【技术领域】,特别涉及一种在线用户分布的处理方法及装置。
【背景技术】
[0002]在一些拥有亿级以上的用户,并且用户登录或发生其它行为较为频繁的互联网系统或服务中,如果能精确、实时、动态地显示在线用户在地理上的分布及行为状态,例如上传照片、视频聊天等,不仅便于观察该互联网系统或服务在地域上的可用度和市场开发潜力,实时监控和发现区域/IDC (Internet Data Center,互联网数据中心)级的异常现象,也将会是该互联网系统或服务的实力与影响力的一个巨大体现。
[0003]在现有技术中,为了实现上述的精确、实时、动态地显示在线用户的在地理上的分布及行为状态,腾讯公司推出了 “腾讯星云”项目。所述的“腾讯星云”项目采用了墨卡托投影的中国地图,收集精确到省的IP地址库,再根据每个省中各市的用户比例,采用一定的随机算法,用偏移分布实现粒子特效来显示在线用户在所述中国地图中各省市的分布及行为变化。由于“腾讯星云”采用了 Flash技术,因此其内在提供了防止把粒子渲染在每个省区块之外的功能。对于所述粒子的动态显示和状态管理,“腾讯星云”采用了基于数组的对象池来实现。
[0004]此外,Facebook公司则推出“Friends on a world map (世界地图上的朋友)”,通过在数据库中抽样一千万个Facebook的好友对,在一个特定视角的墨卡托投影的世界地图上,用颜色渐变的大圆弧连接每个城市对,每个圆弧的颜色和高低均是由两城市间欧几里德距离和城市间好友对数的一个加权函数决定,从而在世界地图上静态表示抽样好友对的关系链。
[0005]然而,所述的“腾讯星云”和“Friends on a world map”至少存在以下技术问题:
[0006](I)所采用或生成的地图均为位图,不可实现无级缩放,无法在地图上查看任一地域的在线用户密度、在线用户行为及密度,以及服务在该地域的可用性;
[0007](2)两者都只能在已知投影算法和投影参数的投影地图上显示;
[0008](3) “Friends on a world map”是非实时的,而“腾讯星云”可以但只能做到I分钟的实时度;
[0009](4)两者的精度都只能达到地级市,“腾讯星云”的更细粒度是通过计算用户比例,外加随机算法实现的,没有精确性保证;
[0010](5)“Friends on a world map”仅仅是一个位图,而“腾讯星云”贝U结合采用Flash技术,其呈现需要依赖客户端浏览器的Flash插件,使“腾讯星云”的交互性不足。

【发明内容】

[0011]有鉴于此,有必要提供一种在线用户分布的处理方法及装置,可以在未知投影算法的地图上显示在线用户的行为状态和在地理位置上的分布,并可以实现无级缩放,同时具有更高的精确度和实时性。[0012]一种在线用户分布的处理方法,包括以下步骤:获取一用于显示在线用户分布的地图,所述地图未知投影算法但包括多个已知坐标及经纬度的点;计算与所述地图最接近的投影算法;采用拟合算法获取从中间坐标至所述地图上的坐标的映射函数的近似解,所述中间坐标是根据经纬度及所述最接近的投影算法计算得到,所述地图内已知坐标及经纬度的点用于所述拟合算法中的拟合计算及精度校验;根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标;以及根据所有在线用户在所述地图上的坐标统计在线用户在所述地图上的分布数据。
[0013]一种在线用户分布的处理装置,包括:获取模块,用于获取一用于显示在线用户分布的地图,所述地图未知投影算法但包括多个已知坐标及经纬度的点;第一计算模块,用于计算与所述地图最接近的投影算法;第二计算模块,用于采用拟合算法获取从中间坐标至所述地图上的坐标的映射函数的近似解,所述中间坐标是根据经纬度及所述最接近的投影算法计算得到,所述地图内已知坐标及经纬度的点用于所述拟合算法中的拟合计算及精度校验;第三计算模块,用于根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标;以及统计模块,用于根据所有在线用户在所述地图上的坐标统计在线用户在所述地图上的分布数据。
[0014]本发明在线用户分布的处理方法及装置的有益效果是:可以在未知投影算法的地图上显示在线用户的行为状态和在地理位置上的分布,并可以实现无级缩放,同时具有更高的精确度和实时性。
[0015]为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
【专利附图】

【附图说明】
[0016]图1为本发明实施例提供的在线用户分布的处理方法的流程图。
[0017]图2为存在旋转、拉伸和扭曲差异的投影地图的示意图。
[0018]图3为计算与所获取地图最接近的投影算法的流程图。
[0019]图4为由角点匹配后获得的最为近似的投影算法对应的投影地图。
[0020]图5为计算从中间坐标到地图上坐标的映射函数的近似解的示意图。
[0021]图6为仅存在旋转差异的投影地图的示意图。
[0022]图7为计算在线用户在所述地图上的坐标的流程图。
[0023]图8为合并多个IP地址库的流程图。
[0024]图9为合并多个IP地址库的原理示意图。
[0025]图10为将IP地址与行政区划进行对应匹配的流程图。
[0026]图11为处理精确到城镇级行政区划的有限状态机的示意图。
[0027]图12为对IP地址所属的地址信息进行匹配与规范化处理的示意图。
[0028]图13为处理用户的行为日志文件的流程图。
[0029]图14为从用户的行为日志文件中采集日志记录的示意图。
[0030]图15为自适应的多线程处理模型的示意图。
[0031]图16为采用自适应的多线程处理模型处理用户的行为日志文件的流程图。
[0032]图17为未经偏移分布处理的在线用户对应的点在地图上的示意图。[0033]图18为点云效果示意图。
[0034]图19为进行偏移分布处理的原理图。
[0035]图20为避免点显示在行政区划的界外的流程图。
[0036]图21为本发明实施例在线用户分布的处理方法的整体架构图。
[0037]图22为本发明实施例提供的在线用户分布的处理装置的框图。
【具体实施方式】
[0038]为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0039]参阅图1所示,为本发明实施例提供的在线用户分布的处理方法的流程图。
[0040]步骤SI,获取一用于显示在线用户分布的地图,所述地图未知投影算法但包括多个已知坐标及经纬度的点;
[0041]步骤S2,计算与所述地图最接近的投影算法;
[0042]步骤S3,采用拟合算法获取从中间坐标至所述地图上的坐标的映射函数的近似解,所述中间坐标是根据经纬度及所述最接近的投影算法计算得到,所述地图内已知坐标及经纬度的点用于所述拟合算法中的拟合计算及精度校验;
[0043]步骤S4,根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标;以及
[0044]步骤S5,根据所有在线用户在所述地图上的坐标统计在线用户在所述地图上的分布数据。
[0045]以下结合具体实例作进一步详细说明:
[0046]步骤SI所述的地图可以是标准的中国地图,也可以是其他地区的地图或世界地图,由专业的地图制作组织或机构制作,且在特定地域不存在展示时的领土纠纷等政治问题。为了实现无级缩放的效果,所述地图可以采用SVG (Scalable Vector Graphics,可缩放矢量图形)格式。所述地图可以从互联网上获取,通常未知该地图的投影算法,因此该地图上的各级行政区划在该地图上对应的坐标无法直接得到。但是该地图上的多个点,例如各省会城市的经纬度及在该地图上的坐标是已知的。
[0047]中国国内的全国行政区划地图通常采用高斯-克吕格尔投影(Gauss-KrugerProjection)算法或兰勃特投影(Lambert Projection)算法,而谷歌地图(http://ditu.google, cn/)和 SoSo 地图(http://map.sos0.com/)通常米用墨卡托投影(MercatorProjection)算法。然而,所获取的地图采用的投影算法可能并不是所述的高斯-克吕格尔投影算法、兰勃特投影算法或墨卡托投影算法,并且所获取的地图的投影参数也是未知的。因此,所述地图与使用高斯-克吕格尔投影算法、兰勃特投影算法或墨卡托投影算法且不断调整投影参数得到的投影地图之间总会存在少许平移、缩放、旋转、错切变换的差异,甚至是非仿射变换的差异,例如图2所示。
[0048]步骤S2所述的与所述地图最接近的投影算法用于间接计算各级行政区划在该地图上的坐标。参阅图3所示,计算与所述地图最接近的投影算法的方法具体包括以下步骤:
[0049]步骤S2.1,获取P种已知的投影算法Projk, k e {1,2, Pj0
[0050]步骤S2.2,根据基于曲率的角点检测算法从所述地图中提取M个角点(Xi,Yi),ie {1,2,,M}。所述角点可以认为是该地图的极值点。一张图形包含角点的个数取决于该图形的平滑度。图形越平滑,角点就越少,图形越突兀,角点就越多。根据所述的M个角点,可以大致表现所述地图的形状,例如图4所示。
[0051]步骤S2.3,根据所述的角点检测算法,从所述的P种投影算法对应的投影地图中分别提取 Mk 个角点(Xi,yi),i ∈ {1,2, -,MJ, k∈{1,2,...,Ρ}。
[0052]具体而言,获取该地图对应的地理区域,例如中国的标准经纬度数据,然后将该标准的经纬度数据以所述投影算法Projk, k ∈{1,2,.P}投影到与该地图尺寸相同的位图(Bitmap)上,从而得到所述P种投影算法对应的投影地图。根据所述的Mk个角点,可以大致表现投影算法为Projk,k∈ {1,2,.P}的投影地图的形状。
[0053]步骤S2.4,从每种投影地图的Mk个角点中,分别选取与所述M个角点对应的角点子集Nk,ke {1,2,…,P}。所选取的每个角点子集Nk表现的地图的形状分别与所述M个角点表现的地图的形状最相似。
[0054]步骤S2.5,计算使得最小的k,则投影算法
【权利要求】
1.一种在线用户分布的处理方法,其特征在于,该方法包括以下步骤: 获取一用于显示在线用户分布的地图,所述地图未知投影算法但包括多个已知坐标及经纬度的点; 计算与所述地图最接近的投影算法; 采用拟合算法获取从中间坐标至所述地图上的坐标的映射函数的近似解,所述中间坐标是根据经纬度及所述最接近的投影算法计算得到,所述地图内已知坐标及经纬度的点用于所述拟合算法中的拟合计算及精度校验; 根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标;以及 根据所有在线用户在所述地图上的坐标统计在线用户在所述地图上的分布数据。
2.如权利要求1所述的在线用户分布的处理方法,其特征在于,根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标包括: 获取IP地址与行政区划的映射关系; 根据行政区划的经纬度及所述最接近的投影算法计算出与行政区划对应的中间坐标; 根据所述中间坐标及所述映射函数的近似解计算所述行政区划在所述地图上的坐标; 在IP地址库中保存所述行政区划在所述地图上的坐标为所述IP地址在所述地图上的坐标; 获取在线用户的IP地址;以及 根据在线用户的IP地址在所述IP地址库中查询对应的在所述地图上的坐标。
3.如权利要求2所述的在线用户分布的处理方法,其特征在于,获取IP地址与行政区划的映射关系包括: 合并多个IP地址库。
4.如权利要求3所述的在线用户分布的处理方法,其特征在于,所述合并多个IP地址库包括: 根据各IP地址库中IP地址的分割区间,将所有IP地址细化分割成若干个最小子区间; 将每个最小子区间的IP地址对应的地址信息与行政区划进行匹配; 将IP地址对应的地址信息与同一行政区划匹配的最小子区间合并,使各IP地址与行政区划--对应。
5.如权利要求4所述的在线用户分布的处理方法,其特征在于,所述的将每个最小子区间的IP地址对应的地址信息与行政区划进行匹配包括: 将待处理的IP地址对应的地址信息封装进http请求中向多个搜索引擎提交; 从所述搜索引擎返回的结果页面集中逐一提取字符串,将所提取的字符串与预设的行政区划表中的行政区划进行子串匹配; 获取与所述预设的行政区划表中的行政区划匹配成功的字符串; 统计所述匹配成功的字符串在所述结果页面集中出现的次数,将出现次数最多的字符串作为与待处理的IP地址对应的地址信息匹配的行政区划。
6.如权利要求2所述的在线用户分布的处理方法,其特征在于,还包括:通过自适应的多线程处理模型处理在线用户的行为日志文件; 所述获取在线用户的IP地 址包括:分析所述行为日志文件得到在线用户的IP地址。
7.如权利要求6所述的在线用户分布的处理方法,其特征在于,通过自适应的多线程处理模型处理在线用户的行为日志文件包括: 每当生成一个行为日志文件时,为该行为日志文件分配一个线程; 当所分配的线程数量达到预设的初始信号量时,停止为新生成的行为日志文件分配线程; 当已分配的线程空闲时,将该已分配的线程重新分配给所述新生成的行为日志文件。
8.如权利要求1所述的在线用户分布的处理方法,其特征在于,根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标包括: 接收所述在线用户使用的客户端发送的位置信息; 根据所述位置信息及所述最接近的投影算法计算出在线用户所在位置的中间坐标;以及 根据所述在线用户所在位置的中间坐标及所述映射函数的近似解计算所述在线用户在所述地图上的坐标。
9.如权利要求1所述的在线用户分布的处理方法,其特征在于,计算与所述地图最接近的投影算法包括: 获取P种已知的投影算法Projk, k e {1,2…P}; 根据角点检测算法从所述地图中提取M个角点(Xi,yi),i e {1,2,...,M}; 根据所述的角点检测算法,从所述的P种投影算法对应的投影地图中分别提取Mk个角点(xi,yi), i e {1,2,...,Mk},k e {1,20, P}; 从每种投影地图的Mk个角点中,分别选取与所述M个角点对应的角点子集Nk,k e {1,2, -,P}; 计算使得
10.如权利要求1所述的在线用户分布的处理方法,其特征在于,还包括: 统计在线用户的行为状态。
11.如权利要求1所述的在线用户分布的处理方法,其特征在于,还包括: 将所述的在线用户在所述地图上的分布数据返回至客户端以由所述客户端在所述地图中以可视方式显示在线用户分布。
12.如权利要求11所述的在线用户分布的处理方法,其特征在于,该方法还包括以下步骤: 客户端接收所述在线用户在所述地图上的分布数据;以及 根据所述分布数据在所述地图上绘制在线用户分布图。
13.如权利要求11所述的在线用户分布的处理方法,其特征在于,根据所述分布数据在所述地图上绘制在线用户分布图包括: 在所述地图上绘制预定数量的点;根据所述分布数据对所述预定数量的点进行偏移分布处理得到所述在线用户分布图。
14.如权利要求13所述的在线用户分布的处理方法,其特征在于,根据所述分布数据对所述预定数量的点进行偏移分布处理得到在线用户分布图包括: 将所述预定数量的点分配给各行政区划; 根据所述分布数据分别对属于各行政区划的点进行偏移分布处理得到所述在线用户分布图。
15.如权利要求14所述的在线用户分布的处理方法,其特征在于,将属于同一行政区划的点封装成一个点对象组进行偏移分布处理。
16.如权利要求13所述的在线用户分布的处理方法,其特征在于,根据所述分布数据分别对属于各行政区划的点进行偏移分布处理得到所述在线用户分布图还包括: 枚举各行政区划在所述地图上的坐标范围; 获取属于各行政区划的点经偏移分布处理后在地图上的坐标; 依次将属于各行政区划的点经偏移分布处理后在地图上的坐标与对应行政区划的坐标范围进行比较; 若某行政区划的某点经偏移分布处理后在地图上的坐标不在对应行政区划的坐标范围内,则将该行政区划的该点设置为不可见。
17.如权利要求12所述的在线用户分布的处理方法,其特征在于,还包括: 所述客户端定期向服务器请求最新的在线用户分布数据;以及 根据最新的在线用户分布数据更新所述的在线用户分布图。
18.—种在线用户分布的处理装置,其特征在于,该装置包括: 获取模块,用于获取一用于显示在线用户分布的地图,所述地图未知投影算法但包括多个已知坐标及经纬度的点; 第一计算模块,用于计算与所述地图最接近的投影算法; 第二计算模块,用于采用拟合算法获取从中间坐标至所述地图上的坐标的映射函数的近似解,所述中间坐标是根据经纬度及所述最接近的投影算法计算得到,所述地图内已知坐标及经纬度的点用于所述拟合算法中的拟合计算及精度校验; 第三计算模块,用于根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标;以及 统计模块,用于根据所有在线用户在所述地图上的坐标统计在线用户在所述地图上的分布数据。
19.如权利要求18所述的在线用户分布的处理装置,其特征在于,根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标包括: 获取IP地址与行政区划的映射关系; 根据行政区划的经纬度及所述最接近的投影算法计算出与行政区划对应的中间坐标; 根据所述中间坐标及所述映射函数的近似解计算所述行政区划在所述地图上的坐标; 在IP地址库中保存所述行政区划在所述地图上的坐标为所述IP地址在所述地图上的坐标;获取在线用户的IP地址;以及 根据在线用户的IP地址在所述IP地址库中查询对应的在所述地图上的坐标。
20.如权利要求19所述的在线用户分布的处理装置,其特征在于,获取IP地址与行政区划的映射关系包括: 合并多个IP地址库。
21.如权利要求20所述的在线用户分布的处理装置,其特征在于,所述合并多个IP地址库包括: 根据各IP地址库中IP地址的分割区间,将所有IP地址细化分割成若干个最小子区间; 将每个最小子区间的IP地址对应的地址信息与行政区划进行匹配; 将IP地址对应的地址信息与同一行政区划匹配的最小子区间合并,使各IP地址与行政区划--对应。
22.如权利要求21所述的在线用户分布的处理装置,其特征在于,所述的将每个最小子区间的IP地址对应的地址信息与行政区划进行匹配包括: 将待处理的IP地址对应的地址信息封装进http请求中向多个搜索引擎提交; 从所述搜索引擎返回的结果页面集中逐一提取字符串,将所提取的字符串与预设的行政区划表中的行政区划进行子串匹配; 获取与所述预设的行政区划表中的行政区划匹配成功的字符串; 统计所述匹配成功的字符串在所述结果页面集中出现的次数,将出现次数最多的字符串作为与待处理的IP地址对应的地址信息匹配的行政区划。
23.如权利要求19所述的在线用户分布的处理装置,其特征在于,还包括:通过自适应的多线程处理模型处理在线用户的行为日志文件; 所述获取在线用户的IP地址包括:分析所述行为日志文件得到在线用户的IP地址。
24.如权利要求23所述的在线用户分布的处理装置,其特征在于,通过自适应的多线程处理模型处理在线用户的行为日志文件包括: 每当生成一个行为日志文件时,为该行为日志文件分配一个线程; 当所分配的线程数量达到预设的初始信号量时,停止为新生成的行为日志文件分配线程; 当已分配的线程空闲时,将该已分配的线程重新分配给所述新生成的行为日志文件。
25.如权利要求18所述的在线用户分布的处理装置,其特征在于,根据所述最接近的投影算法、所述映射函数的近似解计算在线用户在所述地图上的坐标包括: 接收所述在线用户使用的客户端发送的位置信息; 根据所述位置信息及所述最接近的投影算法计算出在线用户所在位置的中间坐标;以及 根据所述在线用户所在位置的中间坐标及所述映射函数的近似解计算所述在线用户在所述地图上的坐标。
26.如权利要求18所述的在线用户分布的处理装置,其特征在于,计算与所述地图最接近的投影算法包括: 获取P种已知的投影算法Projk, k e {1,2,...P};根据角点检测算法从所述地图中提取M个角点(Xi,yi),i e {1,2...,Μ}; 根据所述的角点检测算法,从所述的P种投影算法对应的投影地图中分别提取Mk个角点(Xi,yi),i ∈ {1,2,-,MJ, k ∈ {1,2, ...,P}; 从每种投影地图的Mk个角点中,分别选取与所述M个角点对应的角点子集Nk,k ∈ {1,2, -,P}; 计算使得
27.如权利要求18所述的在线用户分布的处理装置,其特征在于,还包括: 统计在线用户的行为状态。
28.如权利要求18所述的在线用户分布的处理装置,其特征在于,还包括: 将所述的在线用户在所述地图上的分布数据返回至客户端以由所述客户端在所述地图中以可视方式显示在线用户分布。
29.如权利要求28所述的在线用户分布的处理装置,其特征在于,所述客户端接收到所述在线用户在所述地图上的分布数据后,将根据所述分布数据在所述地图上绘制在线用户分布图。
30.如权利要求28所述的在线用户分布的处理装置,其特征在于,根据所述分布数据在所述地图上绘制在线用户分布图包括: 在所述地图上绘制预定数量的点; 根据所述分布数据对所述预定数量的点进行偏移分布处理得到所述在线用户分布图。
31.如权利要求30所述的在线用户分布的处理装置,其特征在于,根据所述分布数据对所述预定数量的点进行偏移分布处理得到在线用户分布图包括: 将所述预定数量的点分配给各行政区划; 根据所述分布数据分别对属于各行政区划的点进行偏移分布处理得到所述在线用户分布图。
32.如权利要求31所述的在线用户分布的处理装置,其特征在于,将属于同一行政区划的点封装成一个点对象组进行偏移分布处理。
33.如权利要求30所述的在线用户分布的处理装置,其特征在于,根据所述分布数据分别对属于各行政区划的点进行偏移分布处理得到所述在线用户分布图还包括: 枚举各行政区划在所述地图上的坐标范围; 获取属于各行政区划的点经偏移分布处理后在地图上的坐标; 依次将属于各行政区划的点经偏移分布处理后在地图上的坐标与对应行政区划的坐标范围进行比较; 若某行政区划的某点经偏移分布处理后在地图上的坐标不在对应行政区划的坐标范围内,则将该行政区划的该点设置为不可见。
34.如权利要求29所述的在线用户分布的处理装置,其特征在于,所述客户端定期向服务器请求最新的在线用户分布数据;以及 根据最新的在线用户分布数据更新所述的在线用户分布图。
【文档编号】H04L12/24GK103902561SQ201210575911
【公开日】2014年7月2日 申请日期:2012年12月26日 优先权日:2012年12月26日
【发明者】庄奇东, 涂俊宏, 刘小军, 杨杰, 饶明, 秦楠 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1