一种给通用数据模型绑定地理位置信息的方法与流程

文档序号:11251046阅读:1014来源:国知局
一种给通用数据模型绑定地理位置信息的方法与流程

本发明属于数据处理技术领域,具体涉及一种给通用数据模型绑定地理位置信息的方法。



背景技术:

位置服务(lbs,locationbasedservices)又称定位服务,lbs是由移动通信网络和卫星定位系统结合在一起提供的一种增值业务,通过一组定位技术获得移动终端的位置信息(如经纬度坐标数据),提供给移动用户本人或他人以及通信系统,实现各种与位置相关的业务。实质上是一种概念较为宽泛的与空间位置有关的新型服务业务。

目前游戏行业的lbs方案是针对特定的数据模型,比如只有游戏里的怪物数据模型和玩家角色数据模型可以通过地理位置进行关联检索。实现方式普遍是利用关系型数据库,比如sqlserver、mysql;在存储lbs信息前,必须要先根据特定对象的地理位置信息绑定需求进行数据表设计,这就造成如果有一种新的数据类型需要绑定地理位置信息,就必须要对数据表和检索程序进行修改,研发和维护需要持续投入才能满足运营需求,并且在新项目中也不能完全复用。

因此,现有技术的扩展性差,维护成本高,每添加一种lbs相关的数据模型都需要同样的研发成本,需要对数据存储表进行设计,对检索程序进行修改,再测试和发布,还会带来新数据模型的维护成本。



技术实现要素:

有鉴于此,本发明的目的在于克服现有技术的不足,提供一种给通用数据模型绑定地理位置信息的方法,

为实现以上目的,本发明采用如下技术方案:

一种给通用数据模型绑定地理位置信息的方法,具体包括以下步骤:

终端设备上传任意数据模型和关联的地理位置信息到服务器;

服务器将数据模型抽象为通用数据模型,所述通用数据模型为与系统平台和开发语言无关的模型;

在服务器中存储通用数据模型和地理位置信息,并将二者绑定;

检索服务器对数据索引进行优化;

终端设备能够以地理位置信息为检索条件,从检索服务器获取与指定地理位置信息绑定的数据模型。

为使本发明可以存储任意数据结构,并且修改数据字段时不需要额外的数据表修改操作,采用如下技术手段:

所述通用数据模型为采用bson数据格式的模型。

进一步地,所述服务器中存储有非关系型数据库,通用数据模型和地理位置信息均存储在非关系型数据库中。

采用非关系型数据库存储数据模型,能够解决关系型数据库需要提前建模的问题。

进一步地,通用数据模型和地理位置信息以松耦合或者紧耦合方式进行绑定。其中:

采用松耦合方式进行绑定,具体步骤为:采用单独的数据表存储地理位置信息以及它和通用数据模型之间的对应关系,通用数据模型存储到另外的数据表。

不同的数据表支持存放到不同的计算机实体。

松耦合方式适合数据实体类型多、数据量巨大时使用,适合大数据平台的需求。

采用紧耦合方式进行绑定,具体步骤为:把地理位置信息和通用数据模型存储到相同的数据表。

紧耦合方式实现更简单,适合少量数据时使用。

进一步地,所述检索服务器对数据索引进行优化,具体采用以下步骤:

检索服务器将地理位置信息转换成geohash数据进行索引;

其中,所述地理位置信息包括经度信息和纬度信息。

索引数据采用b+tree数据结构进行优化。

基于geohash数据和b+tree,索引服务可以做为独立的服务,监听数据变化,动态更新索引数据。

进一步地,所述从检索服务器获取与指定地理位置信息绑定的数据模型,具体包括以下步骤:

检索服务器找到指定的地理位置信息,并读取与之绑定的通用数据模型;

将通用数据模型转换为原始的数据模型,并发送到终端设备。

本发明采用以上技术方案,具有如下的有益效果:

1.扩展性强,所有数据模型都可以关联一个或者多个地理位置信息,在该系统的基础上,随时可以添加需要绑定的数据对象,并且添加针对数据模型的检索条件时无需额外的研发投入;

2.简化lbs相关开发,使用者不需要再次开发地理位置相关的计算和检索程序,仅需关心数据实体的使用;

3.产品研发完成后,后期维护成本极低。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一种给通用数据模型绑定地理位置信息的方法流程图;

图2是b+tree的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

如图1所示,本发明提供一种给通用数据模型绑定地理位置信息的方法,具体包括以下步骤:

终端设备上传任意数据模型和关联的地理位置信息到服务器;

服务器将数据模型抽象为通用数据模型,所述通用数据模型为与系统平台和开发语言无关的模型;

在服务器中存储通用数据模型和地理位置信息,并将二者绑定;

检索服务器对数据索引进行优化;

终端设备能够以地理位置信息为检索条件,从检索服务器获取与指定地理位置信息绑定的数据模型。

进一步地,所述通用数据模型为采用bson数据格式的模型。

bson(binaryserializeddocumentformat)是一种二进制形式的存储格式,采用了类似于c语言结构体的名称、对表示方法,支持内嵌的文档对象和数组对象,具有轻量性、可遍历性、高效性的特点,可以有效描述非结构化数据和结构化数据。

将数据模型抽象为bson数据格式,在此基础上可以存储任意数据结构,并且修改数据字段时不需要额外的数据表修改操作。

所述服务器中存储有非关系型数据库,通用数据模型和地理位置信息均存储在非关系型数据库中。

采用非关系型数据库存储数据模型,能够解决关系型数据库需要提前建模的问题。

进一步地,通用数据模型和地理位置信息以松耦合或者紧耦合方式进行绑定。其中:

采用松耦合方式进行绑定,具体步骤为:采用单独的数据表存储地理位置信息以及它和通用数据模型之间的对应关系,通用数据模型存储到另外的数据表。

不同的数据表支持存放到不同的计算机实体。

采用紧耦合方式进行绑定,具体步骤为:把地理位置信息和通用数据模型存储到相同的数据表。

松耦合方式适合数据实体类型多、数据量巨大时使用,适合大数据平台的需求;紧耦合方式实现更简单,适合少量数据时使用。

进一步地,所述检索服务器对数据索引进行优化,具体采用以下步骤:

检索服务器将地理位置信息转换成geohash数据进行索引;索引数据采用b+tree数据结构进行优化。

其中,所述地理位置信息包括经度信息和纬度信息。

本发明将经纬度信息转换成geohash数据进行索引,索引数据采用b+tree数据结构进行优化。采用该方案的优点是,索引服务可以做为独立的服务,监听数据变化,动态更新索引数据。

采用非关系型数据库存储数据模型,并将经纬度信息转换成geohash数据进行索引,索引数据采用b+tree数据结构进行优化;在以上两点的基础上能够实现对任意数据模型的高效数据检索。

geohash是一种将二维的经纬度转换成字符串的算法。其具体做法是,将地图以矩形的网格进行划分,然后给每一个矩形区域都赋予一个不同geohash字符串,这样每一个字符串就能代表某一矩形区域。也就是说,这个矩形区域内所有的点(经纬度坐标)都共享相同的geohash字符串,这样既可以保护隐私(只表示大概区域位置而不是具体的点),又比较容易做缓存。

geohash数据的特点是:

(1)字符串越长,表示的范围越精确。5位的编码能表示10平方千米范围的矩形区域,而6位编码能表示更精细的区域(约0.34平方千米)。

(2)在大部分情况下,字符串前缀匹配越多的距离越近,这样可以利用字符串的前缀匹配来查询附近的poi信息。

b+tree是数据库系统中使用的一种索引结构,其特点是:

(1)有n棵子树的结点中含有n个关键码;

(2)所有的叶子结点中包含了全部关键码的信息,及指向含有这些关键码记录的指针,且叶子结点本身依关键码的大小自小而大的顺序链接。

(3)所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键码。

如图2所示,图中为一颗3阶的b+tree,通常在b+tree上有两个头指针,一个指向根节点,另一个指向关键字最小的叶子节点。因此可以对b+tree进行两种查找运算:一种是从最小关键字起顺序查找,另一种是从根节点开始,进行随机查找。

b+tree索引的插入和删除操作如下:

在向数据库中插入新的数据时,同时也需要向数据库索引中插入相应的索引键值,则需要向b+tree中插入新的键值;

当从数据库中删除数据时,同时也需要从数据库索引中删除相应的索引键值,则需要从b+tree中删除该键值。

在b+tree上进行随机查找、插入和删除的过程中,若非终端结点上的关键码等于给定值,并不终止,而是继续向下直到叶子结点。因此,在b+tree上,不管查找成功与否,每次查找都是走了一条从根到叶子结点的路径。

在数据库索引的应用中,b+tree可以按照两种不同的方式进行组织:

(1)叶结点的组织方式。b+tree的查找键是数据文件的主键,且索引是稠密的。也就是说,叶结点中为数据文件的第一个记录设有一个键、指针对,该数据文件可以按主键排序,也可以不按主键排序;数据文件按主键排序,且b+tree是稀疏索引,在叶结点中为数据文件的每一个块设有一个键、指针对;数据文件不按键属性排序,且该属性是b+tree的查找键,叶结点中为数据文件里出现的每个属性k设有一个键、指针对,其中指针执行排序键值为k的记录中的第一个。

(2)非叶结点的组织方式。b+tree中的非叶结点形成了叶结点上的一个多级稀疏索引。每个非叶结点中至少有ceil(m/2)个指针,至多有m个指针。

进一步地,所述从检索服务器获取与指定地理位置信息绑定的数据模型,具体包括以下步骤:

检索服务器找到指定的地理位置信息,并读取与之绑定的通用数据模型;

将通用数据模型转换为原始的数据模型,并发送到终端设备。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1