地图数据获取方法、装置及系统、服务器、存储介质与流程

文档序号:18193339发布日期:2019-07-17 05:41阅读:472来源:国知局
地图数据获取方法、装置及系统、服务器、存储介质与流程

本发明涉及地理空间信息领域,特别涉及一种地图数据获取方法、装置及系统、服务器、存储介质。



背景技术:

随着智能手机、平板电脑等终端的普及,电子地图的应用越来越广泛,用户可以使用电子地图导航、定位和查询兴趣点(例如,银行、餐饮、景点、宾馆、药店和休闲娱乐场所等)等。在电子地图的使用过程中,经常需要获取地图数据,并根据地图数据绘制地图。其中,地图数据是指与地理位置相关的数据,其可以包括经纬度数据和点位数据,点位数据通常包括兴趣点数据(例如,银行、餐饮、景点、宾馆、药店和休闲娱乐场所等的数据)。

相关技术中,服务器存储有地图数据库,该地图数据库中存储有经纬度数据和点位数据的映射关系,在电子地图的使用过程中,终端可以向服务器发送携带经纬度数据范围和地图层级的获取请求,服务器可以根据获取请求中的经纬度数据范围查询地图数据库,得到该经纬度数据范围内的地图数据并获取该地图数据,然后根据获取请求中的地图层级对获取到的地图数据进行抽稀(也即是根据地图层级对获取到的地图数据进行筛选)得到抽稀后的地图数据,最后根据抽稀后的地图数据绘制地图并将绘制的地图发送给终端。

在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

由于经纬度数据为二维数据,服务器根据经纬度数据范围查询地图数据库时,需要将经度数据范围和纬度数据范围分别与地图数据库中的经度数据和纬度数据进行比较,因此,查询速度较慢、查询效率较低,导致地图数据的获取效率较低。



技术实现要素:

为了解决相关技术中地图数据的获取效率较低的问题,本发明提供一种地图数据获取方法、装置及系统、服务器、存储介质。所述技术方案如下:

第一方面,提供一种地图数据获取方法,所述方法包括:

接收地图获取请求,所述地图获取请求携带经纬度数据范围;

将所述经纬度数据范围转化为一维地理数据范围;

根据所述一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,所述地图有序集合中存储有多个点位索引数据,所述多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,所述点位数据标识用于指示点位数据。

可选地,所述多个点位索引数据中的每个点位索引数据还包括地图层级,所述一维地理数据按照所述一维地理数据对应的数值的大小依次排布,所述地图获取请求还携带目标地图层级,

所述根据所述一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,包括:根据所述一维地理数据范围和所述目标地图层级,从所述地图有序集合中获取目标点位索引数据。

可选地,所述经纬度数据范围包括最小经纬度数据和最大经纬度数据,所述一维地理数据范围包括最小一维地理数据和最大一维地理数据,所述将所述经纬度数据范围转化为一维地理数据范围,包括:

对所述最小经纬度数据进行编码,得到所述最小一维地理数据;

对所述最大经纬度数据进行编码,得到所述最大一维地理数据;

根据所述最小一维地理数据和所述最大一维地理数据,确定所述一维地理数据范围。

可选地,对所述最小经纬度数据和所述最大经纬度数据中的任一经纬度数据进行编码,包括:

对所述任一经纬度数据中的经度数据和纬度数据分别进行标准化处理,得到标准化经度数据和标准化纬度数据;

将所述标准化经度数据和所述标准化纬度数据按照预设方式排布,得到所述任一经纬度数据对应的一维地理数据。

可选地,对所述经度数据和所述纬度数据中的任一数据进行标准化处理,包括:

分别确定第一数据的位数和第二数据的位数,所述第一数据为所述任一数据中位于小数点前的数据,所述第二数据为所述任一数据中位于小数点后的数据;

检测所述第一数据的位数是否等于第一预设位数;

当所述第一数据的位数不等于所述第一预设位数时,在所述第一数据前添加补位数据,得到标准第一数据,所述标准第一数据的位数等于所述第一预设位数;

检测所述第二数据的位数是否等于第二预设位数;

当所述第二数据的位数不等于所述第二预设位数时,在所述第二数据后添加补位数据,得到标准第二数据,所述标准第二数据的位数等于所述第二预设位数。

可选地,所述检测所述第一数据的位数是否等于第一预设位数,包括:

判断所述第一数据是否为负数;

当所述第一数据不为负数时,检测所述第一数据的位数是否等于第一预设位数;

当所述第一数据为负数时,根据预设的基准数据对所述第一数据进行正数化处理,得到处理后的第一数据,并检测所述处理后的第一数据的位数是否等于第一预设位数。

可选地,所述多个点位索引数据中的每个点位索引数据还包括地图层级编码,所述地图层级编码是对所述地图层级进行编码得到的,所述根据所述一维地理数据范围和所述目标地图层级,从所述地图有序集合中获取目标点位索引数据,包括:

对所述目标地图层级进行编码,得到目标层级编码;

根据所述一维地理数据范围和所述目标层级编码,从所述地图有序集合中获取所述目标点位索引数据。

可选地,所述对所述目标地图层级进行编码,得到目标层级编码,包括:

确定所述地图有序集合对应的总地图层级数,所述地图有序集合对应的总地图层级数为对地图层级进行编码得到所述地图有序集合中的地图层级编码时采用的总地图层级数;

根据所述总地图层级数确定所述目标层级编码的位数;

根据所述目标地图层级和所述目标层级编码的位数,确定所述目标层级编码的各个编码位的数值。

可选地,任一点位数据标识对应至少一个显示地图层级,当任一点位数据标识对应至少两个显示地图层级时,所述至少两个显示地图层级为连续的至少两个地图层级,所述任一点位数据标识对应的显示地图层级能够显示所述任一点位数据标识指示的点位数据,所述地图有序集合中的任一点位索引数据中的地图层级编码为能够显示所述任一点位索引数据中的点位数据标识指示的点位数据的最高地图层级的编码,所述根据所述一维地理数据范围和所述目标层级编码,从所述地图有序集合中获取所述目标点位索引数据,包括:

根据所述一维地理数据范围和所述目标层级编码,查询所述地图有序集合,得到所述目标点位索引数据,所述目标点位索引数据为包括所述目标层级编码的点位索引数据,和,所有包括高于所述目标地图层级的地图层级编码的点位索引数据;

获取所述目标点位索引数据。

可选地,在所述根据所述一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据之前,所述方法还包括:

获取多个点位数据标识,所述多个点位数据标识中的每个点位数据标识指示地图上的一个点位数据;

确定所述多个点位数据标识中的每个点位数据标识对应的经纬度数据,得到多个经纬度数据;

将所述多个经纬度数据中的每个经纬度数据转化为一维地理数据,得到多个一维地理数据;

根据所述多个一维地理数据中的每个一维地理数据和所述每个一维地理数据对应的点位数据标识,生成一个点位索引数据,得到多个点位索引数据;

根据所述多个点位索引数据得到所述地图有序集合,其中,所述地图有序集合中的一维地理数据按照所述一维地理数据对应的数值的大小依次排布。

可选地,所述根据所述多个一维地理数据中的每个一维地理数据和所述每个一维地理数据对应的点位数据标识,生成一个点位索引数据,得到多个点位索引数据,包括:

确定所述多个点位数据标识中的每个点位数据标识对应的地图层级,所述每个点位数据标识对应的地图层级为能够显示所述每个点位数据标识指示的点位数据的至少一个地图层级中的最高地图层级;

根据所述多个一维地理数据中的每个一维地理数据、所述每个一维地理数据对应的点位数据标识和所述每个点位数据标识对应的地图层级,生成一个点位索引数据,得到多个点位索引数据。

可选地,所述根据所述多个一维地理数据中的每个一维地理数据、所述每个一维地理数据对应的点位数据标识和所述每个点位数据标识对应的地图层级,生成一个点位索引数据,得到多个点位索引数据,包括:

对所述多个点位数据标识中的每个点位数据标识对应的地图层级进行编码,得到所述每个点位数据标识对应的地图层级编码;

根据所述多个一维地理数据中的每个一维地理数据、所述每个一维地理数据对应的点位数据标识和所述每个点位数据标识对应的地图层级编码,生成一个点位索引数据,得到多个点位索引数据。

可选地,所述多个点位数据标识中的每个点位数据标识指示的点位数据为在多个地图层级中的最低地图层级中显示的点位数据,所述确定所述多个点位数据标识中的每个点位数据标识对应的地图层级,包括:

对所述多个点位数据标识指示的多个点位数据进行抽稀,得到在所述多个地图层级中的每个地图层级中显示的点位数据,所述多个点位数据中的每个点位数据能够在所述多个地图层级中的至少一个地图层级中显示;

将能够显示所述每个点位数据的至少一个地图层级中的最高地图层级,确定为所述每个点位数据的点位数据标识对应的地图层级。

第二方面,提供一种地图数据获取装置,所述装置包括:

接收模块,用于接收地图获取请求,所述地图获取请求携带经纬度数据范围;

第一转化模块,用于将所述经纬度数据范围转化为一维地理数据范围;

第一获取模块,用于根据所述一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,所述地图有序集合中存储有多个点位索引数据,所述多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,所述点位数据标识用于指示点位数据。

可选地,所述多个点位索引数据中的每个点位索引数据还包括地图层级,所述一维地理数据按照所述一维地理数据对应的数值的大小依次排布,所述地图获取请求还携带目标地图层级,

所述第一获取模块,用于根据所述一维地理数据范围和所述目标地图层级,从所述地图有序集合中获取目标点位索引数据。

可选地,所述经纬度数据范围包括最小经纬度数据和最大经纬度数据,所述一维地理数据范围包括最小一维地理数据和最大一维地理数据,所述第一转化模块,包括:

第一编码子模块,用于对所述最小经纬度数据进行编码,得到所述最小一维地理数据;

第二编码子模块,用于对所述最大经纬度数据进行编码,得到所述最大一维地理数据;

确定子模块,用于根据所述最小一维地理数据和所述最大一维地理数据,确定所述一维地理数据范围。

可选地,所述第一编码子模块和所述第二编码子模块中的任一编码子模块,包括:

处理单元,用于对所述任一经纬度数据中的经度数据和纬度数据分别进行标准化处理,得到标准化经度数据和标准化纬度数据;

排布单元,用于将所述标准化经度数据和所述标准化纬度数据按照预设方式排布,得到所述任一经纬度数据对应的一维地理数据。

可选地,所述处理单元,包括:

确定子单元,用于分别确定第一数据的位数和第二数据的位数,所述第一数据为所述经度数据和所述纬度数据中的任一数据中位于小数点前的数据,所述第二数据为所述任一数据中位于小数点后的数据;

第一检测子单元,用于检测所述第一数据的位数是否等于第一预设位数;

第一补位子单元,用于当所述第一数据的位数不等于所述第一预设位数时,在所述第一数据前添加补位数据,得到标准第一数据,所述标准第一数据的位数等于所述第一预设位数;

第二检测子单元,用于检测所述第二数据的位数是否等于第二预设位数;

第二补位子单元,用于当所述第二数据的位数不等于所述第二预设位数时,在所述第二数据后添加补位数据,得到标准第二数据,所述标准第二数据的位数等于所述第二预设位数。

可选地,所述第一检测子单元,用于:

判断所述第一数据是否为负数;

当所述第一数据不为负数时,检测所述第一数据的位数是否等于第一预设位数;

当所述第一数据为负数时,根据预设的基准数据对所述第一数据进行正数化处理,得到处理后的第一数据,并检测所述处理后的第一数据的位数是否等于第一预设位数。

可选地,所述多个点位索引数据中的每个点位索引数据还包括地图层级编码,所述地图层级编码是对所述地图层级进行编码得到的,所述第一获取模块,包括:

编码子模块,用于对所述目标地图层级进行编码,得到目标层级编码;

获取子模块,用于根据所述一维地理数据范围和所述目标层级编码,从所述地图有序集合中获取所述目标点位索引数据。

可选地,所述编码子模块,包括:

第一确定单元,用于确定所述地图有序集合对应的总地图层级数,所述地图有序集合对应的总地图层级数为对地图层级进行编码得到所述地图有序集合中的地图层级编码时采用的总地图层级数;

第二确定单元,用于根据所述总地图层级数确定所述目标层级编码的位数;

第三确定单元,用于根据所述目标地图层级和所述目标层级编码的位数,确定所述目标层级编码的各个编码位的数值。

可选地,任一点位数据标识对应至少一个显示地图层级,当任一点位数据标识对应至少两个显示地图层级时,所述至少两个显示地图层级为连续的至少两个地图层级,所述任一点位数据标识对应的显示地图层级能够显示所述任一点位数据标识指示的点位数据,所述地图有序集合中的任一点位索引数据中的地图层级编码为能够显示所述任一点位索引数据中的点位数据标识指示的点位数据的最高地图层级的编码,所述获取子模块,用于:

根据所述一维地理数据范围和所述目标层级编码,查询所述地图有序集合,得到所述目标点位索引数据,所述目标点位索引数据为包括所述目标层级编码的点位索引数据,和,所有包括高于所述目标地图层级的地图层级编码的点位索引数据;

获取所述目标点位索引数据。

可选地,所述装置还包括:

第二获取模块,用于获取多个点位数据标识,所述多个点位数据标识中的每个点位数据标识指示地图上的一个点位数据;

第一确定模块,用于确定所述多个点位数据标识中的每个点位数据标识对应的经纬度数据,得到多个经纬度数据;

第二转化模块,用于将所述多个经纬度数据中的每个经纬度数据转化为一维地理数据,得到多个一维地理数据;

生成模块,用于根据所述多个一维地理数据中的每个一维地理数据和所述每个一维地理数据对应的点位数据标识,生成一个点位索引数据,得到多个点位索引数据;

第二确定模块,用于根据所述多个点位索引数据得到所述地图有序集合,其中,所述地图有序集合中的一维地理数据按照所述一维地理数据对应的数值的大小依次排布。

可选地,所述生成模块,包括:

确定子模块,用于确定所述多个点位数据标识中的每个点位数据标识对应的地图层级,所述每个点位数据标识对应的地图层级为能够显示所述每个点位数据标识指示的点位数据的至少一个地图层级中的最高地图层级;

生成子模块,用于根据所述多个一维地理数据中的每个一维地理数据、所述每个一维地理数据对应的点位数据标识和所述每个点位数据标识对应的地图层级,生成一个点位索引数据,得到多个点位索引数据。

可选地,所述生成子模块,用于:

对所述多个点位数据标识中的每个点位数据标识对应的地图层级进行编码,得到所述每个点位数据标识对应的地图层级编码;

根据所述多个一维地理数据中的每个一维地理数据、所述每个一维地理数据对应的点位数据标识和所述每个点位数据标识对应的地图层级编码,生成一个点位索引数据,得到多个点位索引数据。

可选地,所述多个点位数据标识中的每个点位数据标识指示的点位数据为在多个地图层级中的最低地图层级中显示的点位数据,

所述第一确定子模块,用于:

对所述多个点位数据标识指示的多个点位数据进行抽稀,得到在所述多个地图层级中的每个地图层级中显示的点位数据,所述多个点位数据中的每个点位数据能够在所述多个地图层级中的至少一个地图层级中显示;

将能够显示所述每个点位数据的至少一个地图层级中的最高地图层级,确定为所述每个点位数据的点位数据标识对应的地图层级。

第三方面,提供一种地图数据获取系统,所述系统包括服务器和终端,所述服务器包括第二方面或第二方面的任一可选方式所述的地图数据获取装置。

第四方面,提供一种服务器,所述服务器包括:处理器、网络接口、存储器和通信总线,所述通信总线与所述处理器、所述网络接口和所述存储器连接,所述存储器中存储有程序,所述处理器被配置为执行所述程序以实现第一方面或第一方面的任一可选方式所述的地图数据获取方法。

第五方面,提供一种地图数据获取系统,所述系统包括终端和第四方面所述的服务器。

第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可选方式所述的地图数据获取方法。

第七方面,提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任一可选方式所述的地图数据获取方法。

本发明提供的技术方案带来的有益效果是:

本发明提供的地图数据获取方法、装置及系统、服务器、存储介质,服务器接收地图获取请求,地图获取请求携带经纬度数据范围,将经纬度数据范围转化为一维地理数据范围,根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识指示点位数据。由于服务器根据一维地理数据范围获取地图数据,因此,解决了相关技术中地图数据的获取效率较低的问题,有助于提高地图数据的获取效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

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

图1是本发明实施例所涉及的一种实施环境的示意图;

图2是本发明实施例提供的一种地图数据获取方法的方法流程图;

图3-1是本发明实施例提供的另一种地图数据获取方法的方法流程图;

图3-2是本发明实施例提供的一种建立地图有序集合的方法流程图;

图3-3是本发明实施例提供的一种对经纬度数据进行编码的方法流程图;

图3-4是本发明实施例提供的一种对经度数据和纬度数据中的任一数据进行标准化处理的方法流程图;

图3-5是本发明实施例提供的一种检测第一数据的位数是否等于第一预设位数的方法流程图;

图3-6是本发明实施例提供的一种对经纬度数据进行编码的示意图;

图3-7是本发明实施例提供的一种根据一维地理数据和点位数据标识生成点位索引数据的方法流程图;

图3-8是本发明实施例提供的一种地图金字塔模型的示意图;

图3-9是本发明实施例提供的一种确定点位数据标识对应的地图层级的方法流程图;

图3-10是本发明实施例提供的一种第1层地图层级中显示的点位数据的示意图;

图3-11是本发明实施例提供的一种对第1层地图层级中显示的点位数据进行抽稀的示意图;

图3-12是本发明实施例提供的一种对第2层地图层级中显示的点位数据进行抽稀的示意图;

图3-13是本发明实施例提供的一种对第3层地图层级中显示的点位数据进行抽稀的示意图;

图3-14是本发明实施例提供的一种对第4层地图层级中显示的点位数据进行抽稀的示意图;

图3-15是本发明实施例提供的一种根据一维地理数据、点位数据标识和地图层级生成点位索引数据的方法流程图;

图3-16是本发明实施例提供的一种对地图层级进行编码的方法流程图;

图3-17是本发明实施例提供的一种经纬度数据范围限定的地图区域的示意图;

图3-18是本发明实施例提供的一种将经纬度数据范围转化为一维地理数据范围的方法流程图;

图3-19是本发明实施例提供的一种根据一维地理数据范围和目标地图层级从地图有序集合中获取目标点位索引数据的方法流程图;

图3-20是本发明实施例提供的一种对目标地图层级进行编码的方法流程图;

图3-21是本发明实施例提供的一种根据一维地理数据范围和目标层级编码从地图有序集合中获取目标点位索引数据的方法流程图;

图4-1是本发明实施例提供的一种地图数据获取装置的框图;

图4-2是本发明实施例提供的一种第一转化模块的框图;

图4-3是本发明实施例提供的一种编码子模块的框图;

图4-4是本发明实施例提供的一种处理单元的框图;

图4-5是本发明实施例提供的一种第一获取模块的框图;

图4-6是本发明实施例提供的一种编码子模块的框图;

图4-7是本发明实施例提供的另一种地图数据获取装置的框图;

图4-8是本发明实施例提供的一种生成模块的框图;

图5是本发明实施例提供的一种服务器的结构示意图。

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

具体实施方式

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

在对本发明实施例做详细阐述之前,先对本发明实施例所涉及的几个名词进行简单介绍:

1、瓦片:瓦片即地图切片,是指在某一比例尺下,将指定地理范围内的地图切割形成的正方形图片,该正方形图片包括若干行和若干列,任意行和任意列的尺寸均为固定尺寸,且任意两行的尺寸相等,任意两列的尺寸相等,任意一行和任意一列的尺寸相等。其中,瓦片的形成过程可以采用地图金字塔模型(一种多分辨率层次模型)来描述。

2、geoserver:opengisweb服务器规范的java2平台企业版(英文:java2platformenterpriseedition;简称:j2ee)实现,利用geoserver可以方便的发布地图数据,允许用户对地图数据进行更新、删除、插入等,通过geoserver可以比较容易的在不同终端之间迅速共享空间地理信息。

3、gis:地理信息系统(英文:geographicinformationsystem)一种采集、存储、管理、处理、分析、显示和描述地理空间数据的计算机系统。

4、redis:一种开源的使用美国国家标准协会(英文:americannationalstandardsinstitute;简称:ansi)c语言编写的、高性能的、基于内存的key-value存储系统,redis存储的value支持字符串(英文:string)、哈希(英文:hash)表、链表(英文:list)、集合(英文:set)和有序集合(英文:sortedset;简称:zset)五种数据类型。

相关技术中,服务器根据接收到的经纬度数据范围,从数据库(例如oracle数据库或mysql数据库等)中查询出经纬度数据范围内的地图数据,之后为了进行地图的美观展示,避免绘制地图时海量地图数据的叠加问题,服务器根据接收到的地图层级,按照一定的规则对查询结果进行抽稀,以去除查询结果中的部分地图数据,得到最终的地图数据,并根据最终的地图数据绘制地图返回给终端。该方法最终能够正确地将地图返回给终端,但是由于服务器需要从海量地图数据中查询指定范围内的地图数据,查询速度较慢、效率较低、服务器压力较大,并且查询得到的地图数据较多,服务器需要通过抽稀来去除大量冗余的地图数据,这部分去除的地图数据在当前的地图获取请求下并不需要呈现给用户,但是服务器进行了获取并且获取之后又进行了删除,因而增加了服务器处理数据的难度,增加了服务器的处理压力,同时在海量地图数据下服务器的处理速度较慢,效率也较低。

本发明实施例提供的地图数据获取方法,通过对海量地图数据按照指定的方法编码并存储形成地图有序集合,根据一维地理数据范围和目标地图层级查询该地图有序集合,实现对指定地图层级下指定经纬度数据范围内的地图数据(也即是点位索引数据)的快速查询,解决了在海量地图数据中查询地图数据的查询速度缓慢、查询出的数据量过大且需要通过抽稀去除大量冗余数据后才能进行美观展示的问题。本发明方案的详细描述请参考下述各实施例。

请参考图1,其示出了本发明各个实施例提供的所涉及的一种实施环境的示意图,参见图1,该实施环境包括:终端12和服务器14。终端12可以通过有线网络或无线网络与服务器14连接。其中,有线网络例如通用串行总线(英文:universalserialbus;简称:usb),无线网络包括但不限于:无线保真(英文:wirelessfidelity;简称:wifi)、蓝牙、红外或紫蜂(英文:zigbee)。

终端12可以是具有地图展示功能的终端。示例地,终端12中可以安装地图应用程序,当地图应用程序开启时,终端12可以向服务器14发送携带经纬度数据范围的地图获取请求,服务器14根据经纬度数据范围获取目标地图数据,并根据目标地图数据绘制地图,然后向终端12发送地图,使终端12通过地图应用程序的展示界面对地图进行展示。在本实施环境中,终端12可以为智能手机、平板电脑、智能电视、智能可穿戴式设备、动态影像专家压缩标准音频层面5(英文:movingpictureexpertsgroupaudiolayerv;简称:mp5)播放器、膝上型便携计算机或台式计算机等。

服务器14可以是一台服务器,或者由若干台服务器组成的服务器集群,或者一个云计算服务中心,服务器14可以接收终端12发送的携带经纬度数据范围的地图获取请求,根据经纬度数据范围获取目标地图数据,并根据目标地图数据绘制地图,然后向终端12发送地图。在本发明实施例中,地图数据可以为点位索引数据,目标地图数据也即是目标点位索引数据。服务器14中存储有地图有序集合,该地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识用于指示点位数据,服务器14可以将经纬度数据范围转化为一维地理数据范围,根据一维地理数据范围从地图有序集合中获取目标点位索引数据,以提高地图数据的获取效率。

请参考图2,其示出了本发明实施例提供的一种地图数据获取方法的方法流程图,本实施例以该地图数据获取方法应用于图1所示实施环境中的服务器14中来进行举例说明。参见图2,该地图数据获取方法包括:

步骤21、接收地图获取请求,地图获取请求携带经纬度数据范围。

步骤22、将经纬度数据范围转化为一维地理数据范围。

步骤23、根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识用于指示点位数据。

在本发明实施例中,点位索引数据也即是地图数据。

综上所述,本发明实施例提供的地图数据获取方法,服务器接收地图获取请求,地图获取请求携带经纬度数据范围,将经纬度数据范围转化为一维地理数据范围,根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识指示点位数据。由于服务器根据一维地理数据范围获取地图数据,因此,解决了相关技术中地图数据的获取效率较低的问题,有助于提高地图数据的获取效率。

请参考图3-1,其示出了本发明实施例提供的另一种地图数据获取方法的方法流程图,本实施例以该地图数据获取方法应用于图1所示实施环境中来进行举例说明。参见图3-1,该地图数据获取方法包括:

步骤31、服务器建立地图有序集合,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识用于指示点位数据。

请参考图3-2,其示出了本发明实施例提供的一种服务器建立地图有序集合的方法流程图,参见图3-2,该方法流程包括:

子步骤311、获取多个点位数据标识,多个点位数据标识中的每个点位数据标识指示地图上的一个点位数据。

在本发明实施例中,服务器可以获取多个点位数据标识,多个点位数据标识中的每个点位数据标识指示地图上的一个点位数据。可选地,服务器可以存储地图数据库,该地图数据库可以为oracle数据库或者mysql数据库,该数据库中存储有点位数据和经纬度数据的映射关系,服务器可以从地图数据库中读取多个点位数据,并确定每个点位数据的点位数据标识,得到多个点位数据标识;或者,服务器可以存储地图数据库,该地图数据库中存储有点位数据标识和经纬度数据的映射关系,服务器可以从地图数据库中读取多个点位数据标识,实现对该多个点位数据标识的获取;或者,服务器设置有地图发布界面,工作人员可以通过该地图发布界面向服务器输入多个点位数据标识,服务器通过接收工作人员输入的多个点位数据标识来实现对多个点位数据标识的获取;或者,服务器还可以采用其他方式获取多个点位数据标识,本发明实施例对此不作限定。

子步骤312、确定多个点位数据标识中的每个点位数据标识对应的经纬度数据,得到多个经纬度数据。

可选地,服务器可以确定多个点位数据标识中的每个点位数据标识指示的点位数据,根据每个点位数据标识指示的点位数据查询地图数据库,得到每个点位数据标识指示的点位数据对应的经纬度数据,将每个点位数据标识指示的点位数据对应的经纬度数据,确定为该每个点位数据标识对应的经纬度数据,从而得到多个经纬度数据;或者,服务器可以根据每个点位数据标识查询地图数据库,得到每个点位数据标识对应的经纬度数据,从而得到多个经纬度数据;或者,地图发布界面中的每个位置点对应一个经纬度数据,在子步骤311中,工作人员可以在地图发布界面的不同位置向服务器输入多个点位数据标识,且在每个位置输入一个点位数据标识,则在工作人员输入点位数据标识的过程中,服务器可以根据工作人员输入每个点位数据标识的位置来确定每个点位数据标识对应的经纬度数据,从而得到多个经纬度数据;或者,服务器还可以采用其他方式确定每个点位数据标识对应的经纬度数据,本发明实施例对此不作限定。

子步骤313、将多个经纬度数据中的每个经纬度数据转化为一维地理数据,得到多个一维地理数据。

服务器确定多个经纬度数据后,可以将多个经纬度数据中的每个经纬度数据转化为一维地理数据,得到多个一维地理数据。在本发明实施例中,服务器可以通过对每个经纬度数据进行编码来将其转化为一维地理数据。请参考图3-3,其示出了本发明实施例提供的一种服务器对每个经纬度数据进行编码的方法流程图,参见图3-3,该方法流程包括:

子步骤3131、对每个经纬度数据中的经度数据和纬度数据分别进行标准化处理,得到标准化经度数据和标准化纬度数据。

在本发明实施例中,每个经纬度数据包括经度数据和纬度数据,服务器可以先对每个经纬度数据中的经度数据和纬度数据分别进行标准化处理,得到标准化经度数据和标准化纬度数据,其中,标准化经度数据的位数可以与标准化纬度数据的位数相等,或者,标准化经度数据的位数可以与标准化纬度数据的位数不相等。示例地,本发明实施例以将经纬度数据(89.12345,30.222)转化为一维地理数据为例进行说明,该经纬度数据(89.12345,30.222)包括经度数据89.12345和纬度数据30.222,则服务器可以对经度数据89.12345和纬度数据30.222分别进行标准化处理。

可选地,请参考图3-4,其示出了本发明实施例提供的一种对每个经纬度数据中的经度数据和纬度数据中的任一数据进行标准化处理的方法流程图,参见图3-4,该方法流程包括:

子步骤31311、分别确定第一数据的位数和第二数据的位数,第一数据为每个经纬度数据中的经度数据和纬度数据中的任一数据中位于小数点前的数据,第二数据为该任一数据中位于小数点后的数据。

可选地,服务器可以分别确定第一数据的自然数数位的个数和第二数据的自然数数位的个数,将第一数据的自然数数位的个数作为第一数据的位数,将第二数据的自然数数位的个数作为第二数据的位数。其中,第一数据为每个经度数据(或纬度数据)中位于小数点前的数据,第二数据为每个经度数据(或纬度数据)中位于小数点后的数据。

示例地,经纬度数据(89.12345,30.222)包括经度数据89.12345和纬度数据30.222,该子步骤31311中所描述的任一数据可以为经度数据89.12345或纬度数据30.222,当该子步骤31311中所描述的任一数据为经度数据89.12345时,该子步骤31311中所描述的第一数据为89,第二数据为12345,此时,服务器可以确定第一数据的位数为2,第二数据的位数为5;当该子步骤31311中所描述的任一数据为纬度数据30.222时,该子步骤31311中所描述的第一数据为30,第二数据为222,此时,服务器可以确定第一数据的位数为2,第二数据的位数为3。

子步骤31312、检测第一数据的位数是否等于第一预设位数。

服务器确定第一数据的位数之后,可以检测第一数据的位数是否等于第一预设位数。请参考图3-5,其示出了本发明实施例提供的一种服务器检测第一数据的位数是否等于第一预设位数的方法流程图,参见图3-5,该方法包括:

子步骤313121、判断第一数据是否为负数。

可选地,服务器可以将第一数据的值与0进行比较来判断第一数据是否为负数,当第一数据的值大于或等于0时,服务器确定第一数据不为负数,当第一数据的值小于0时,服务器确定第一数据为负数;或者,服务器可以检测第一数据中是否存在负数标识位来判断第一数据是否为负数,当第一数据中存在负数标识位时,服务器确定第一数据为负数,当第一数据中不存在负数标识位时,服务器确定第一数据不为负数。需要说明的是,本发明实施例提供的判断第一数据是否为负数的方案仅仅是示例性的,实际应用中,服务器还可以采用其他方式判断第一数据是否为负数,本发明实施例对此不作限定。

示例地,服务器将第一数据89的值与0进行比较来判断第一数据89是否为负数,由于第一数据89的值大于0,因此该第一数据89不为负数;或者,服务器可以通过检测第一数据89中是否存在负数标识位来判断第一数据89是否为负数,由于第一数据89中不存在负数标识位,因此该第一数据89不为负数。

再示例地,服务器将第一数据30的值与0进行比较来判断第一数据30是否为负数,由于第一数据30的值大于0,因此该第一数据30不为负数;或者,服务器可以通过检测第一数据30中是否存在负数标识位来判断第一数据30是否为负数,由于第一数据30中不存在负数标识位,因此该第一数据30不为负数。

子步骤313122、当第一数据不为负数时,检测第一数据的位数是否等于第一预设位数。

当在子步骤313121中服务器确定第一数据不为负数时,服务器检测第一数据的位数是否等于第一预设位数。其中,第一预设位数可以根据情况设置,示例地,第一预设位数为3,或者第一预设位数为4、5等,本发明实施例对此不作限定。可选地,服务器可以将第一数据的位数与第一预设位数进行比较来检测第一数据的位数是否等于第一预设位数。

本发明实施例以第一预设位数为3为例进行说明。示例地,当第一数据为89时,服务器将第一数据89的位数2与第一预设位数3进行比较来检测第一数据的位数是否等于第一预设位数,由于2不等于3,因此,第一数据的位数不等于第一预设位数。再示例地,当第一数据为30时,服务器将第一数据30的位数2与第一预设位数3进行比较来检测第一数据的位数是否等于第一预设位数,由于2不等于3,因此,第一数据的位数不等于第一预设位数。需要说明的是,本发明实施例提供的检测第一数据的位数是否等于第一预设位数的方案仅仅是示例性的,实际应用中,服务器还可以采用其他方式检测第一数据的位数是否等于第一预设位数,本发明实施例对此不作限定。

子步骤313123、当第一数据为负数时,根据预设的基准数据对第一数据进行正数化处理,得到处理后的第一数据,并检测处理后的第一数据的位数是否等于第一预设位数。

当在子步骤313121中服务器确定第一数据为负数时,服务器可以根据预设的基准数据对第一数据进行正数化处理,得到处理后的第一数据,并检测处理后的第一数据的位数是否等于第一预设位数。其中,基准数据和第一预设位数均可以根据情况设置,且对经度数据中的第一数据进行标准化处理的基准数据与对纬度数据中的第一数据进行标准化处理的基准数据可以不同,示例地,对经度数据中的第一数据进行标准化处理的基准数据可以为180,对纬度数据中的第一数据进行标准化处理的基准数据可以为90,第一预设位数可以为3,本发明实施例对此不作限定。

可选地,服务器可以将预设的基准数据与第一数据按照十进制数相加来对第一数据进行正数化处理。示例地,当第一数据为经度数据中的第一数据,且该第一数据为-89时,服务器将第一数据-89与基准数据180相加,得到处理后的第一数据为91;再示例地,当第一数据为纬度数据中的第一数据,且该第一数据为-30时,服务器将第一数据-30与基准数据90相加,得到处理后的第一数据为60。

服务器得到处理后的第一数据后,可以检测处理后的第一数据的位数是否等于第一预设位数。检测的具体实现过程可以参考上述子步骤313122,本发明实施例在此不再赘述。

子步骤31313、当第一数据的位数不等于第一预设位数时,在第一数据前添加补位数据,得到标准第一数据,标准第一数据的位数等于第一预设位数。

当在子步骤31312中服务器确定第一数据的位数不等于第一预设位数时,服务器在第一数据前添加补位数据,得到标准第一数据,标准第一数据的位数等于第一预设位数。其中,补位数据可以根据情况设置,可选地,补位数据可以为0、1、2或3等,本发明实施例以补位数据为0为例进行说明。

示例地,当第一数据为89时,由于第一数据89的位数不等于第一预设位数,因此,服务器在第一数据89前添加补位数据得到标准第一数据089,该标准第一数据089的位数为3,等于第一预设位数;再示例地,当第一数据为30时,由于第一数据30的位数不等于第一预设位数,因此,服务器在第一数据30前添加补位数据得到标准第一数据030,该标准第一数据030的位数为3,等于第一预设位数。

子步骤31314、检测第二数据的位数是否等于第二预设位数。

服务器确定第二数据的位数之后,可以检测第二数据的位数是否等于第二预设位数。其中,第二预设位数可以根据情况设置,示例地,第二预设位数可以为5,或者第二预设位数为6、7等,本发明实施例对此不作限定。可选地,服务器可以将第二数据的位数与第二预设位数进行比较来检测第二数据的位数是否等于第二预设位数。

本发明实施例以第二预设位数为5为例进行说明。示例地,当第二数据为12345时,服务器将第二数据12345的位数5与第二预设位数5进行比较来检测第二数据的位数是否等于第二预设位数,由于5等于5,因此,第二数据的位数等于第二预设位数。再示例地,当第二数据为222时,服务器将第二数据222的位数3与第二预设位数5进行比较来检测第二数据的位数是否等于第二预设位数,由于3不等于5,因此,第二数据的位数不等于第二预设位数。需要说明的是,本发明实施例提供的检测第二数据的位数是否等于第二预设位数的方案仅仅是示例性的,实际应用中,服务器还可以采用其他方式检测第二数据的位数是否等于第二预设位数,本发明实施例对此不作限定。

子步骤31315、当第二数据的位数不等于第二预设位数时,在第二数据后添加补位数据,得到标准第二数据,标准第二数据的位数等于第二预设位数。

当在子步骤31314中服务器确定第二数据的位数不等于第二预设位数时,服务器在第二数据后添加补位数据,得到标准第二数据,标准第二数据的位数等于第二预设位数。其中,补位数据可以根据情况设置,可选地,补位数据可以为0、1、2或3等,本发明实施例以补位数据为0为例进行说明。

示例地,当第二数据为222时,由于第二数据222的位数不等于第二预设位数,因此,服务器在第二数据222后添加补位数据得到标准第二数据22200,该标准第二数据22200的位数为5,等于第二预设位数。

子步骤3132、将标准化经度数据和标准化纬度数据按照预设方式排布,得到每个经纬度数据对应的一维地理数据。

服务器对每个经纬度数据中的经度数据和纬度数据进行标准化处理得到标准化经度数据和标准化纬度数据后,可以将每个经纬度数据的标准化经度数据和标准化纬度数据按照预设方式排布,得到每个经纬度数据对应的一维地理数据。

可选地,服务器可以按照位数从高到低的顺序同时从标准化经度数据和标准化纬度数据中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布,得到每个经纬度数据对应的一维地理数据。具体地,服务器同时从标准化经度数据和标准化纬度数据中提取数据,且无论是从标准化经度数据中提取数据,还是从标准化纬度数据中提取数据,服务器都是按照位数从高到低的顺序提取,每次同时从标准化经度数据和标准化纬度数据中提取数据时,服务器可以提取到两个数据,该两个数据中的一个数据来自于标准化经度数据,另一个数据来自于标准化纬度数据,每次提取到的两个数据对应两个相邻的数据位,该两个相邻的数据位中的一个数据位为高位,另一个数据位为低位,服务器将来自于标准化经度数据的数据排布在高位,来自于标准化纬度数据的数据排布在低位。

示例地,经过上述子步骤3131,服务器可以得到标准化经度数据089.12345和标准化纬度数据030.22200,服务器按照位数从高到低的顺序同时从标准化经度数据089.12345和标准化纬度数据030.22200中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布。示例地,服务器对经纬度数据(89.12345,30.222)进行编码的过程可以如图3-6所示,参见图3-6,对经纬度数据(89.12345,30.222)进行标准化处理得到经纬度数据(089.12345,030.22200),之后服务器按照子步骤3212所描述的方法提取数据并排布,得到经纬度数据(89.12345,30.222)对应的一维地理数据0083901222324050。

可选地,服务器还可以将每个经纬度数据的标准化经度数据和标准化纬度数据,按照经度数据在高位,纬度数据在低位的顺序排布,得到每个经纬度数据对应的一维地理数据。例如,服务器将标准化经度数据089.12345和标准化纬度数据030.22200,按照经度数据在高位,纬度数据在低位的顺序排布,得到一维地理数据0891234503022200。

或者,服务器还可以将每个经纬度数据的标准化经度数据和标准化纬度数据,按照纬度数据在高位,经度数据在低位的顺序排布,得到每个经纬度数据对应的一维地理数据。例如,服务器将标准化经度数据089.12345和标准化纬度数据030.22200,按照纬度数据在高位,经度数据在低位的顺序排布,得到一维地理数据0302220008912345。

或者,服务器可以对标准化经度数据和标准化纬度数据分别进行分组,同时从标准化经度数据和标准化纬度数据中按组提取数据,并按照经度数据在高位,纬度数据在低位的顺序对提取到的数据进行排布,或者,按照纬度数据在高位,经度数据在低位的顺序对提取到的数据进行排布。例如,服务器对标准化经度数据089.12345进行分组得到08、91、23和45这4组数据,对标准化纬度数据030.22200分组得到03、02、22和00这4组数据,然后服务器同时从标准化经度数据089.12345和标准化纬度数据030.22200中按组提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布得到一维地理数据0803910223224500,或者,服务器同时从标准化经度数据089.12345和标准化纬度数据030.22200中按组提取数据,并按照纬度数据在高位经度数据在低位的顺序对提取到的数据进行排布得到一维地理数据0308029122230045。需要说明的是,本发明实施例中,服务器在对标准化经度数据(或者标准化纬度数据)进行分组时,是以标准化经度数据(或者标准化纬度数据)中相邻的两个数据分为一组为例进行说明的,实际应用中,服务器可以将相邻的n(n为大于或等于2的整数)个数据分为一组,或者,同一组中的数据可以是标准化经度数据(或者标准化纬度数据)中不相邻的n个数据,本发明实施例对此不作限定。

子步骤314、根据多个一维地理数据中的每个一维地理数据和每个一维地理数据对应的点位数据标识,生成一个点位索引数据,得到多个点位索引数据。

服务器得到多个一维地理数据后,可以根据多个一维地理数据中的每个一维地理数据和每个一维地理数据对应的点位数据标识,生成一个点位索引数据,得到多个点位索引数据。在本发明实施例中,多个点位索引数据中的每个点位索引数据还包括地图层级。请参考图3-7,其示出了本发明实施例提供的一种根据一维地理数据和点位数据标识生成点位索引数据的方法流程图,参见图3-7,该方法流程包括:

子步骤3141、确定多个点位数据标识中的每个点位数据标识对应的地图层级,每个点位数据标识对应的地图层级为能够显示每个点位数据标识指示的点位数据的至少一个地图层级中的最高地图层级。

在本发明实施例中,在建立地图有序集合时,服务器可以先选择地图金字塔模型,地图金字塔模型可以包括多个地图层级,且不同的地图金字塔模型中的地图层级数可以不同。地图层级通常可以采用地图层级编号或地图层级标识等表示,地图金字塔模型的每个地图层级中显示有点位数据,且每个点位数据可以在至少一个地图层级中显示,在高地图层级中显示的点位数据可以在低地图层级中显示,在低地图层级中显示的点位数据不一定在高地图层级中显示。其中,地图层级与地图的显示比例负相关,也即是,地图的显示比例越高,地图层级越低,地图的显示比例越低,地图层级越高。

示例地,请参考图3-8,其示出了本发明实施例提供的一种地图金字塔模型的示意图,该地图金字塔模型可以用于gis系统,在gis系统中,为了展示给用户的地图更加美观,对同样经纬度数据范围内的点位数据,在不同地图层级下呈现给用户的点位数据的数量不同。参见图3-8,地图金字塔模型包括第1层至第5层共五个地图层级,每个地图层级中显示有点位数据,且点位数据按照从第1层地图层级至第5层地图层级的顺序依次减少,根据该图3-8可知,同样经纬度数据范围内,在高地图层级中显示的点位数据在低地图层级中必定显示,且在图3-8中,从第1层地图层级至第5层地图层级,地图层级对应的显示比例依次降低,也即是,第1层地图层级对应的显示比例最大,第2层地图层级对应的显示比例小于第1层地图层级对应的显示比例,第3层地图层级对应的显示比例小于第2层地图层级对应的显示比例,依次类推,第5层地图层级对应的显示比例最小。

在本发明实施例中,服务器可以确定子步骤311中获取的多个点位数据标识中的每个点位数据标识对应的地图层级,每个点位数据标识对应的地图层级为能够显示该每个点位数据标识指示的点位数据的至少一个地图层级中的最高地图层级。例如,点位数据标识1对应的地图层级为能够显示该点位数据标识1指示的点位数据的至少一个地图层级中的最高地图层级。可选地,在本发明实施例中,子步骤311中服务器获取的多个点位数据标识中的每个点位数据标识为在地图金字塔模型的最低地图层级中显示的点位数据的点位数据标识,请参考图3-9,其示出了本发明实施例提供的一种确定多个点位数据标识中的每个点位数据标识对应的地图层级的方法流程图,参见图3-9,该方法流程包括:

子步骤31411、对多个点位数据标识指示的多个点位数据进行抽稀,得到在多个地图层级中的每个地图层级中显示的点位数据,多个点位数据中的每个点位数据能够在多个地图层级中的至少一个地图层级中显示。

可选地,多个点位数据标识中的每个点位数据标识指示一个点位数据,从而,多个点位数据标识可以指示多个点位数据,服务器可以根据瓦片地图原理和抽稀方法对该多个点位数据进行抽稀,得到在多个地图层级中的每个地图层级中显示的点位数据,该多个地图层级可以为服务器选择的地图金字塔模型中所有的地图层级,其中,服务器对多个点位数据进行抽稀的实现过程可以参考相关技术,本发明实施例在此不再赘述。本发明实施例假设多个点位数据包括点位数据1至点位数据23,则该点位数据1至点位数据23在图3-8所示的地图金字塔模型中的第1层地图层级中的显示位置可以如图3-10所示,参见图3-10,第1层地图层级包括瓦片0、瓦片1、瓦片2和瓦片3,其中,瓦片0包括瓦片00、瓦片01、瓦片02和瓦片03,瓦片03包括瓦片030、瓦片031、瓦片032和瓦片033,瓦片030中显示有点位数据4,瓦片031中显示有点位数据1和点位数据2,瓦片032中显示有点位数据3、点位数据5、点位数据6、点位数据9、点位数据13、点位数据14、点位数据16、点位数据17和点位数据20,瓦片033中显示有点位数据18和点位数据21,瓦片00中显示有点位数据8,瓦片01中显示有点位数据7,瓦片02中显示有点位数据10和点位数据11,瓦片1中显示有点位数据22和点位数据23,瓦片2中显示有点位数据12和点位数据15,瓦片3中显示有点位数据19。

服务器可以对图3-10所示的地图层级中显示的点位数据进行抽稀,得到在图3-8所示的地图金字塔模型中的第2层地图层级中的显示的点位数据。以对瓦片032中显示的点位数据进行抽稀为例,则抽稀前后,瓦片032中显示的点位数据可以如图3-11所示,参见图3-11,抽稀前,瓦片032中显示有点位数据3、点位数据5、点位数据6、点位数据9、点位数据13、点位数据14、点位数据16、点位数据17和点位数据20,抽稀后,瓦片032中显示有点位数据3、点位数据6、点位数据14和点位数据20,该点位数据3、点位数据6、点位数据14和点位数据20能够在地图金字塔模型中的第2层地图层级中显示。

服务器得到在地图金字塔模型中的第2层地图层级中的显示的点位数据之后,可以对第2层地图层级中的显示的点位数据进行抽稀,得到在地图金字塔模型中的第3层地图层级中的显示的点位数据。以对瓦片03中显示的点位数据进行抽稀为例,则抽稀前后,瓦片03中显示的点位数据可以如图3-12所示,参见图3-12,抽稀前,瓦片03中显示有点位数据4、点位数据1、点位数据2、点位数据3、点位数据6、点位数据14、点位数据20、点位数据18和点位数据21,抽稀后,瓦片03中显示有点位数据1、点位数据3、点位数据4和点位数据21,该点位数据1、点位数据3、点位数据4和点位数据21能够在地图金字塔模型中的第3层地图层级中的显示。

服务器得到在地图金字塔模型中的第3层地图层级中的显示的点位数据之后,可以继续对第3层地图层级中的显示的点位数据进行抽稀,得到在地图金字塔模型中的第4层地图层级中的显示的点位数据。以对瓦片0中显示的点位数据进行抽稀为例,则抽稀前后,瓦片0中显示的点位数据可以如图3-13所示,参见图3-13,抽稀前,瓦片0中显示有点位数据8、点位数据7、点位数据10、点位数据11、点位数据1、点位数据3、点位数据4和点位数据21,抽稀后,瓦片0中显示有点位数据1、点位数据7、点位数据8和点位数据10,该点位数据1、点位数据7、点位数据8和点位数据10能够在地图金字塔模型中的第4层地图层级中的显示。

服务器得到在地图金字塔模型中的第4层地图层级中的显示的点位数据之后,可以继续对第4层地图层级中的显示的点位数据进行抽稀,得到在地图金字塔模型中的第5层地图层级中的显示的点位数据。以对整个瓦片中显示的点位数据进行抽稀为例,则抽稀前后,瓦片中显示的点位数据可以如图3-14所示,参见图3-14,抽稀前,瓦片中显示有点位数据1、点位数据7、点位数据8、点位数据10、点位数据22、点位数据23、点位数据12、点位数据15和点位数据19,抽稀后,瓦片中显示有点位数据7、点位数据15、点位数据19和点位数据22,该点位数据7、点位数据15、点位数据19和点位数据22能够在地图金字塔模型中的第5层地图层级中的显示。

需要说明的是,以上抽稀过程仅仅是示例性的,实际应用中,抽稀过程还可以为其他过程,本发明实施例对此不作限定。经过以上抽稀过程可以确定,本发明实施例中,在图3-8所示的地图金字塔模型的各个地图层级中显示的点位数据分别如下表1所示:

表1

子步骤31412、将能够显示每个点位数据的至少一个地图层级中的最高地图层级,确定为每个点位数据的点位数据标识对应的地图层级。

服务器得到每个地图层级中显示的点位数据之后,可以先确定能够显示每个点位数据的至少一个地图层级,然后确定该至少一个地图层级中的最高地图层级,并将该最高地图层级确定为该每个点位数据的点位数据标识对应的地图层级。示例地,如表1所示,点位数据1能够在第1层地图层级至第4层地图层级中显示,且第4层地图层级为能够显示点位数据1的最高地图层级,因此,服务器将第4层地图层级确定为点位数据1的点位数据标识对应的地图层级。其中,地图层级可以采用地图层级编号或地图层级标识等表示,例如,第4层地图层级可以采用数字4表示,或者,第4层地图层级可以采用id-4表示,本发明实施例对此不作限定。需要说明的是,该子步骤31412仅以确定点位数据1的点位数据标识对应的地图层级为例进行说明,确定其他点位数据的点位数据标识对应的地图层级的过程与此类似,本发明实施例在此不再赘述。

子步骤3142、根据多个一维地理数据中的每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级,生成一个点位索引数据,得到多个点位索引数据。

服务器确定多个点位数据标识中的每个点位数据标识对应的地图层级之后,可以根据多个一维地理数据中的每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级生成一个点位索引数据,得到多个点位索引数据。在本发明实施例中,点位索引数据中的地图层级具体可以为地图层级编码,地图层级编码是对地图层级进行编码得到的,因此,服务器可以先对每个点位数据标识对应的地图层级进行编码,然后再根据多个一维地理数据中的每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级生成一个点位索引数据。

请参考图3-15,其示出了本发明实施例提供的一种根据一维地理数据、一维地理数据对应的点位数据标识和点位数据标识对应的地图层级生成点位索引数据的方法流程图,参见图3-15,该方法流程包括:

子步骤31421、对多个点位数据标识中的每个点位数据标识对应的地图层级进行编码,得到每个点位数据标识对应的地图层级编码。

服务器可以对每个点位数据标识对应的地图层级进行编码,得到每个点位数据标识对应的地图层级编码。示例地,请参考图3-16,其示出了本发明实施例提供的一种服务器对每个点位数据标识对应的地图层级进行编码的方法流程图,参见图3-16,该方法流程包括:

子步骤314211、确定总地图层级数。

其中,总地图层级数可以为服务器选择的地图金字塔模型的总地图层级数,该服务器选择的地图金字塔模型可以为图3-8所示的地图金字塔模型。可选地,服务器中存储有地图金字塔模型的相关信息,该相关信息可以包括地图金字塔模型的总地图层级数,服务器可以从自身存储的相关信息中读取总地图层级数,得到地图金字塔模型的总地图层级数。在本发明实施例中,地图金字塔模型的总地图层级数为5,从而,服务器确定的地图金字塔模型的总地图层级数为5。

子步骤314212、根据总地图层级数确定每个点位数据标识对应的地图层级编码的位数。

可选地,服务器可以将地图金字塔模型的总地图层级数作为每个点位数据标识对应的地图层级编码的位数。在本发明实施例中,地图金字塔模型的总地图层级数为5,因此,服务器将每个点位数据标识对应的地图层级编码的位数确定为5,本发明实施例对此不作限定。

子步骤314213、根据每个点位数据标识对应的地图层级和每个点位数据标识对应的地图层级编码的位数,确定每个点位数据标识对应的地图层级编码的各个编码位的数值。

服务器确定每个点位数据标识对应的地图层级编码的位数之后,可以根据每个点位数据标识对应的地图层级和每个点位数据标识对应的地图层级编码的位数,确定每个点位数据标识对应的地图层级编码的各个编码位的数值,从而得到每个点位数据标识对应的地图层级编码。

可选地,在本发明实施例中,每个点位数据标识对应的地图层级编码的编码位从高到低可以与地图金字塔模型的地图层级从低到高一一对应,服务器可以将不高于每个点位数据标识对应的地图层级在该每个点位数据标识对应的地图层级编码中对应的编码位的数值确定为1,将高于每个点位数据标识对应的地图层级在该每个点位数据标识对应的地图层级编码中对应的编码位的数值确定为0;或者,服务器可以将不高于每个点位数据标识对应的地图层级在该每个点位数据标识对应的地图层级编码中对应的编码位的数值确定为0,将高于每个点位数据标识对应的地图层级在该每个点位数据标识对应的地图层级编码中对应的编码位的数值确定为1。

本发明实施例以服务器将不高于每个点位数据标识对应的地图层级在该每个点位数据标识对应的地图层级编码中对应的编码位的数值确定为1,将高于每个点位数据标识对应的地图层级在该每个点位数据标识对应的地图层级编码中对应的编码位的数值确定为0为例进行说明。示例地,假设点位数据1的点位数据标识为点位数据标识1,以对点位数据标识1对应的地图层级进行编码为例,根据子步骤3141可以确定,点位数据标识1对应的地图层级为地图金字塔模型的第4层地图层级,且该第4层地图层级为能够显示点位数据1的最高的地图层级,服务器可以确定该点位数据标识1对应的地图层级编码的位数为5,且不高于该点位数据标识1对应的地图层级为地图金字塔模型的第1层地图层级至第4层地图层级,高于该点位数据标识1对应的地图层级为地图金字塔模型的第5层地图层级,所以,服务器可以确定点位数据标识1对应的地图层级编码为11110。与此同理,服务器还可以得到上述表1中的各个点位数据的点位数据标识对应的地图层级编码,假设上述表1中的点位数据1至点位数据23的点位数据标识为点位数据标识1至点位数据标识23,则上述表1中的各个点位数据的点位数据标识对应的地图层级编码可以如下表2所示:

表2

需要说明的是,在本发明实施例中,每个点位数据标识对应的地图层级编码的编码位从高到低与地图金字塔模型的地图层级从低到高一一对应,且地图层级编码中的1表示点位数据标识指示的点位数据在相应的地图层级中显示,0表示点位数据标识指示的点位数据在相应的地图层级中不显示,由此可以直观的确定显示每个点位数据的地图层级。例如,根据表2可知,点位数据标识2对应的地图层级编码为11000,由于11000的编码位从高到低与地图金字塔模型的地图层级从低到高一一对应,因此可以确定点位数据标识2指示的点位数据(也即是点位数据2)在第1层地图层级和第2层地图层级中显示,在第3层地图层级至第5层地图层级中均不显示。

需要说明的是,本发明实施例是以采用二进制编码方法对地图层级进行编码为例进行说明的,实际应用中,还可以采用其他方式对地图层级进行编码,例如采用十进制编码方法对地图层级进行编码,或者,采用八进制编码方法对地图层级进行编码,或者采用其他方式对地图层级进行编码,本发明实施例不对地图层级的编码方法进行限定。

子步骤31422、根据多个一维地理数据中的每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级编码,生成一个点位索引数据,得到多个点位索引数据。

服务器确定多个点位数据标识中的每个点位数据标识对应的地图层级编码后,可以根据多个一维地理数据中的每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级编码,生成一个点位索引数据,从而得到多个点位索引数据。

可选地,服务器可以按照预设规则对每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级编码进行组合,得到相应的点位索引数据。可选地,服务器以(地图层级编码:一维地理数据:点位数据标识)的方式对每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级编码进行组合得到相应的点位索引数据;或者,服务器以(一维地理数据:地图层级编码:点位数据标识)的方式对每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级编码进行组合得到相应的点位索引数据;或者,服务器还可以采用其他方式对每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级编码进行组合,本发明实施例对此不作限定。本发明实施例以服务器以(一维地理数据:地图层级编码:点位数据标识)的方式对一维地理数据、一维地理数据对应的点位数据标识和点位数据标识对应的地图层级编码进行组合得到相应的点位索引数据为例进行说明。

需要说明的是,实际应用中,点位数据标识可以点位数据身份标识(英文:identity;简称:id),则点位索引数据可以为(地图层级编码:一维地理数据:点位数据id)。示例地,假设点位数据标识8对应的一维地理数据为0083901222324050,且点位数据标识8对应的地图层级编码为11110,则相应的点位索引数据可以为11110:0083901222324050:8。需要说明的是,在以(地图层级编码:一维地理数据:点位数据标识)方式排布的点位索引数据中,由于地图层级编码位于点位索引数据的最前端,因此点位索引数据中的地图层级编码也可以称为点位索引数据的编码前缀,本发明实施例对此不作限定。

还需要说明的是,本发明实施例为了直观的体现显示每个点位数据标识对应的地图层级,采用上述方式对地图层级进行了编码,并根据一维地理数据、地图层级编码和点位数据标识生成点位索引数据,实际应用中,还可以不对地图层级进行编码,直接根据一维地理数据、地图层级和点位数据标识生成点位索引数据,且实际应用中,点位索引数据中可以直接包括点位数据,而不包括点位数据标识,本发明实施例对此不作限定。

子步骤315、根据多个点位索引数据得到地图有序集合,其中,地图有序集合中的一维地理数据按照一维地理数据对应的数值的大小依次排布。

服务器生成多个点位索引数据后,可以根据多个点位索引数据得到地图有序集合,且在地图有序集合中,点位索引数据中的一维地理数据按照一维地理数据对应的数值的大小依次排布。其中,服务器可以根据多个点位索引数据中的一维地理数据对应的数值的大小,对多个点位索引数据进行排序,得到地图有序集合。

可选地,地图有序集合可以为redis数据库的有序集合,服务器可以将多个点位索引数据存储在redis数据库的有序集合中,得到地图有序集合。具体地,服务器可以将每个点位索引数据中的一维地理数据作为redis数据库的有序集合的得分(score)存储在redis数据库的有序集合中,将该每个点位索引数据作为redis数据库的有序集合的成员(member)与该每个点位索引数据中的一维地理数据关联存储在redis数据库的有序集合中,得到地图有序集合。可选地,服务器可以采用redis数据库的存储命令对一维地理数据和点位索引数据进行存储,该过程的具体实现方式可以参考相关技术,本发明实施例在此不再赘述。

示例地,服务器采用redis数据库的存储命令将一维地理数据0083901222324050作为redis数据库的有序集合的score存储在有序集合中,将点位索引数据11110:0083901222324050:8作为redis数据库的有序集合的member与一维地理数据0083901222324050关联存储在有序集合中。需要说明的是,redis数据库的有序集合的score是按照大小顺序排布的,member是按照字典排序的,从而,将一维地理数据作为redis数据库的有序集合的score存储,将点位索引数据作为redis数据库的有序集合的member与一维地理数据关联存储之后,该一维地理数据在redis数据库的有序集合中按照一维地理数据对应的数值的大小依次排布,点位索引数据按照字典排序,其中,字典排序是指按照字符串中字符的顺序进行排列,如abc小于abd,abc1小于abc2,aa小于aaa等,本发明实施例在此不再赘述。

需要说明的是,在本发明实施例中,每个点位数据可以在至少一个地图层级中显示,服务器存储的每个点位数据标识对应的地图层级为能够显示每个点位数据标识指示的点位数据的至少一个地图层级中的最高地图层级,这样可以避免存储地图层级占用较多的服务器资源,降低服务器的存储压力。

步骤32、终端生成地图获取请求,地图获取请求携带经纬度数据范围。

可选地,终端中安装有地图应用程序,用户可以操作终端触发地图应用程序开启,当地图应用程序开启时,终端可以执行定位操作并获取终端的当前位置,根据当前位置以及地图应用程序的展示界面的尺寸确定经纬度数据范围,根据经纬度数据范围生成地图获取请求,使该地图获取请求携带该经纬度数据范围。或者,终端设置有经纬度数据范围输入界面,用户可以在经纬度数据范围输入界面输入经纬度数据范围,终端接收用户输入的经纬度数据范围,并根据该经纬度数据范围生成地图获取请求,使该地图获取请求携带该经纬度数据范围。

示例地,在本发明实施例中,经纬度数据范围可以为(90.12345,30.02)~(100.52,40.118),则终端生成地图获取请求,该生成地图获取请求携带经纬度数据范围(90.12345,30.02)~(100.52,40.118)。需要说明的是,一个经纬度数据范围可以限定一个地图区域,该地图区域可以为二维平面内的一个矩形区域,示例地,经纬度数据范围(90.12345,30.02)~(100.52,40.118)可以限定如图3-17所示的矩形区域,本发明实施例对此不作限定。

步骤33、终端向服务器发送地图获取请求。

可选地,终端与服务器之间建立有通信连接,终端可以通过与服务器之间的通信连接向服务器发送地图获取请求。示例地,终端通过与服务器之间的通信连接向服务器发送地图获取请求,该地图获取请求携带经纬度数据范围(90.12345,30.02)~(100.52,40.118)。

步骤34、服务器将经纬度数据范围转化为一维地理数据范围。

服务器接收到终端发送的地图获取请求后,可以将该地图获取请求中携带的经纬度数据范围转化为一维地理数据范围。在本发明实施例中,经纬度数据范围包括最小经纬度数据和最大经纬度数据,一维地理数据范围包括最小一维地理数据和最大一维地理数据,服务器可以将最小经纬度数据转化为最小一维地理数据,将最大经纬度数据转化为最大一维地理数据,并根据最小一维地理数据和最大一维地理数据得到一维地理数据范围。可选地,请参考图3-18,其示出了本发明实施例提供的一种服务器将经纬度数据范围转化为一维地理数据范围的方法流程图,参见图3-18,该方法流程包括:

子步骤341、对最小经纬度数据进行编码,得到最小一维地理数据。

服务器可以对最小经纬度数据进行编码得到最小一维地理数据。可选地,服务器可以先对最小经纬度数据中的经度数据和纬度数据分别进行标准化处理,得到标准化经度数据和标准化纬度数据,然后将标准化经度数据和标准化纬度数据按照预设方式排布,得到最小经纬度数据对应的一维地理数据。

其中,服务器将标准化经度数据和标准化纬度数据按照预设方式排布的具体实现过程可以参考上述子步骤3132,该子步骤341以服务器按照位数从高到低的顺序同时从标准化经度数据和标准化纬度数据中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布为例进行说明,则服务器按照位数从高到低的顺序同时从最小经纬度数据的标准化经度数据和标准化纬度数据中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布,得到最小经纬度数据对应的一维地理数据,该最小经纬度数据对应的一维地理数据也即是最小一维地理数据。

示例地,经纬度数据范围(90.12345,30.02)~(100.52,40.118)的最小经纬度数据为(90.12345,30.02),服务器对该最小经纬度数据(90.12345,30.02)中的经度数据和纬度数据分别进行标准化处理,得到经纬度数据(090.12345,030.02000),该经纬度数据(090.12345,030.02000)包括标准化经度数据090.12345和标准化纬度数据030.02000,然后服务器按照位数从高到低的顺序依次从标准化经度数据090.12345和标准化纬度数据030.02000中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布,得到最小经纬度数据(90.12345,30.02)对应的一维地理数据0093001022304050,该一维地理数据0093001022304050也即是最小一维地理数据。

子步骤342、对最大经纬度数据进行编码,得到最大一维地理数据。

服务器可以对最大经纬度数据进行编码得到最大一维地理数据。可选地,服务器可以先对最大经纬度数据中的经度数据和纬度数据分别进行标准化处理,得到标准化经度数据和标准化纬度数据,然后将标准化经度数据和标准化纬度数据按照预设方式排布,得到最大经纬度数据对应的一维地理数据。

其中,服务器将标准化经度数据和标准化纬度数据按照预设方式排布的具体实现过程可以参考上述子步骤3132,该子步骤342以服务器按照位数从高到低的顺序依次从标准化经度数据和标准化纬度数据中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布为例进行说明,则服务器按照位数从高到低的顺序同时从最大经纬度数据的标准化经度数据和标准化纬度数据中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布,得到最大经纬度数据对应的一维地理数据,该最大经纬度数据对应的一维地理数据也即是最大一维地理数据。

示例地,经纬度数据范围(90.12345,30.02)~(100.52,40.118)的最大经纬度数据为(100.52,40.118),服务器对该最大经纬度数据(100.52,40.118)中的经度数据和纬度数据分别进行标准化处理,得到经纬度数据(100.52000,040.11800),该经纬度数据(100.52000,040.11800)包括标准化经度数据100.52000和标准化纬度数据040.11800,然后服务器按照位数从高到低的顺序依次从标准化经度数据100.52000和标准化纬度数据040.11800中按位提取数据,并按照经度数据在高位纬度数据在低位的顺序对提取到的数据进行排布,得到最大经纬度数据(100.52,40.118)对应的一维地理数据1004005121080000,该一维地理数据1004005121080000也即是最大一维地理数据。

需要说明的是,上述子步骤341和子步骤342的具体实现过程可以参考图3-3、图3-4,图3-5和图3-6及其相关描述,本发明实施例在此不再赘述。

子步骤343、根据最小一维地理数据和最大一维地理数据,确定一维地理数据范围。

可选地,服务器可以将最小一维地理数据作为一维地理数据范围的下限,将最大一维地理数据作为一维地理数据范围的上限,得到一维地理数据范围。示例地,在本发明实施例中,该一维地理数据范围可以为0093001022304050~1004005121080000。

步骤35、服务器根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据。

服务器确定一维地理数据范围后,可以根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识用于指示点位数据,且每个点位索引数据还包括点位数据标识对应的地图层级,一维地理数据按照一维地理数据对应的数值的大小依次排布。可选地,地图获取请求还可以携带目标地图层级,目标地图层级可以采用地图层级编号或地图层级标识等表示。服务器可以根据一维地理数据范围和目标地图层级从地图有序集合中获取目标点位索引数据。其中,如步骤31所述,地图有序集合中存储有多个点位索引数据,且地图有序集合可以为redis数据库的有序集合,一维地理数据作为redis数据库的有序集合的score存储,点位索引数据作为redis数据库的有序集合的member与一维地理数据关联存储,从而一维地理数据按照一维地理数据对应的数值的大小依次排布。在本发明实施例中,每个点位索引数据包括一维地理数据、地图层级和点位数据标识,且该点位索引数据中的地图层级具体为对地图层级进行编码得到的地图层级编码,从而服务器可以根据一维地理数据范围和目标层级编码从地图有序集合中获取目标点位索引数据,本发明实施例对此不作限定。

请参考图3-19,其示出了本发明实施例提供的一种服务器根据一维地理数据范围和目标地图层级从地图有序集合中获取目标点位索引数据的方法流程图,参见图3-19,该方法流程包括:

子步骤351、对目标地图层级进行编码,得到目标层级编码。

地图获取请求中可以携带目标地图层级,该目标地图层级可以采用目标地图层级的地图层级编号或地图层级标识等表示。服务器可以对目标地图层级进行编码得到目标层级编码。可选地,请参考图3-20,其示出了本发明实施例提供的一种对目标地图层级进行编码的方法流程图,参见图3-20,该方法流程包括:

子步骤3511、确定地图有序集合对应的总地图层级数,地图有序集合对应的总地图层级数为对地图层级进行编码得到地图有序集合中的地图层级编码时采用的总地图层级数。

其中,对地图层级进行编码得到地图有序集合中的地图层级编码时采用的总地图层级数也即是子步骤3141中服务器选择的地图金字塔模型的总地图层级数,该子步骤3141中服务器选择的地图金字塔模型也即是地图有序集合对应的地图金字塔模型。

可选地,服务器中存储有地图有序集合和地图有序集合对应的地图金字塔模型的相关信息的对应关系,该相关信息可以包括地图金字塔模型的总地图层级数,服务器可以从自身存储的与地图有序集合对应的地图金字塔模型的相关信息中读取总地图层级数,得到地图有序集合对应的地图金字塔模型的总地图层级数。在本发明实施例中,地图有序集合对应的地图金字塔模型的总地图层级数可以为5,从而,服务器确定的地图有序集合对应的地图金字塔模型的总地图层级数为5。

子步骤3512、根据总地图层级数确定目标层级编码的位数。

可选地,服务器可以将总地图层级数作为目标层级编码的位数。在本发明实施例中,总地图层级数为5,因此,服务器将目标层级编码的位数确定为5,本发明实施例对此不作限定。

子步骤3513、根据目标地图层级和目标层级编码的位数,确定目标层级编码的各个编码位的数值。

可选地,目标层级编码的编码位从高到低可以与地图金字塔模型的地图层级从低到高一一对应,服务器可以将不高于目标地图层级的地图层级在目标层级编码中对应的编码位的数值确定为1,将高于目标地图层级的地图层级在目标层级编码中对应的编码位的数值确定为0;或者,服务器可以将不高于目标地图层级的地图层级在目标层级编码中对应的编码位的数值确定为0,将高于目标地图层级的地图层级在目标层级编码中对应的编码位的数值确定为1。

与上述子步骤314213对应,该子步骤3513以服务器将不高于目标地图层级的地图层级在目标层级编码中对应的编码位的数值确定为1,将高于目标地图层级的地图层级在目标层级编码中对应的编码位的数值确定为0为例进行说明。示例地,假设目标地图层级为第4层地图层级,则服务器可以确定目标层级编码的第1至4个编码位的数值为1,第5个编码位的数值为0,也即是,服务器确定目标层级编码为11110。

子步骤352、根据一维地理数据范围和目标层级编码,从地图有序集合中获取目标点位索引数据。

服务器确定目标层级编码后,可以根据一维地理数据范围和目标层级编码,从地图有序集合中获取目标点位索引数据。在本发明实施例中,任一点位数据标识对应至少一个显示地图层级,当任一点位数据标识对应至少两个显示地图层级时,至少两个显示地图层级为连续的至少两个地图层级,任一点位数据标识对应的显示地图层级能够显示任一点位数据标识指示的点位数据,地图有序集合中的任一点位索引数据中的地图层级编码为能够显示任一点位索引数据中的点位数据标识指示的点位数据的最高地图层级的编码。

请参考图3-21,其示出了本发明实施例提供的一种根据一维地理数据范围和目标层级编码从地图有序集合中获取目标点位索引数据的方法流程图,参见图3-21,该方法流程包括:

子步骤3521、根据一维地理数据范围和目标层级编码,查询地图有序集合,得到目标点位索引数据,目标点位索引数据为包括目标层级编码的点位索引数据,和,所有包括高于目标地图层级的地图层级编码的点位索引数据。

在本发明实施例中,服务器可以根据一维地理数据范围和目标层级编码生成查询索引参数,根据查询索引参数查询地图有序集合得到目标点位索引数据,目标点位索引数据为包括目标层级编码的点位索引数据,和,所有包括高于目标地图层级的地图层级编码的点位索引数据。可选地,在本发明实施例中,所有不低于目标地图层级的地图层级可以称为查询地图层级,查询地图层级的编码可以称为查询层级编码,服务器可以根据一维地理数据范围和每个查询层级编码生成一个查询索引参数,根据每个查询索引参数查询地图有序集合得到点位索引数据,将根据所有的查询索引参数查询地图有序集合得到的点位索引数据确定为目标点位索引数据。

可选地,查询索引参数的格式可以为“[查询层级编码:最小一维地理数据:”~“[查询层级编码:最大一维地理数据\xff”,其中,“[”表示包括,“:”表示分隔符,该分隔符可以对查询索引参数的不同内容进行分隔,便于用户直观的确定查询地图层级以及一维地理数据等,实际应用中,该分隔符还可以为逗号或者其他符号,或者也可以不设置分隔符,但是需要说明的是,该查询索引参数中的分隔符与点位索引数据中的分隔符应是相同的,且当点位索引数据中有分隔符时,查询索引参数中有分隔符,本发明实施例对此不作限定;“\xff”表示字节的最大值,“[查询层级编码:最小一维地理数据:”~“[查询层级编码:最大一维地理数据\xff”表示查询位于最小一维地理数据与最大一维地理数据之间的一维地理数据对应的点位索引数据,这些点位索引数据包括最小一维地理数据对应的点位索引数据和最大一维地理数据对应的点位索引数据,且这些点位索引数据在查询层级编码对应的查询地图层级中显示。

示例地,在本发明实施例中,目标地图层级可以为地图金字塔模型中的第4层地图层级,因此,查询地图层级为地图金字塔模型中的第4层地图层级和第5层地图层级,当查询地图层级为地图金字塔模型中的第4层地图层级,且一维地理数据范围为0093001022304050~1004005121080000时,服务器生成的查询索引参数可以为[11110:0093001022304050:”~“[11110:1004005121080000\xff”。当查询地图层级为地图金字塔模型中的第5层地图层级,且一维地理数据范围为0093001022304050~1004005121080000时,服务器生成的查询索引参数可以为[11111:0093001022304050:”~“[11111:1004005121080000\xff”。

服务器生成查询索引参数后,可以根据查询索引参数查询地图有序集合,得到一维地理数据范围内包括查询层级编码的点位索引数据。可选地,服务器可以采用redis数据库的查询命令根据查询索引参数查询地图有序集合,具体的查询过程可以参考相关技术,本发明实施例在此不再赘述。在本发明实施例中,服务器先采用redis数据库的查询命令根据查询索引参数[11110:0093001022304050:”~“[11110:1004005121080000\xff”查询地图有序集合,得到一维地理数据范围内与包括第4层地图层级的地图层级编码的点位索引数据,然后服务器采用redis数据库的查询命令根据查询索引参数[11111:0093001022304050:”~“[11111:1004005121080000\xff”查询地图有序集合,得到一维地理数据范围内包括第5层地图层级的地图层级编码的点位索引数据,最后,服务器将查询得到的所有点位索引数据确定为目标点位索引数据。

子步骤3522、获取目标点位索引数据。

可选地,服务器可以通过读取目标点位索引数据来实现对该目标点位索引数据的获取。

需要说明的是,相关技术中,服务器先获取经纬度数据范围内的地图数据(包括经纬度数据和点位数据),然后根据地图层级对获取到的地图数据进行抽稀以去除大量冗余的地图数据,这部分去除的地图数据在当前的地图获取请求下并不需要呈现给用户,但是服务器却对这部分地图数据进行了获取,并且获取之后又进行了删除,这很大程度上增加了服务器处理数据的难度,增加了服务器的处理压力,同时在海量地图数据下处理速度较慢,效率也较低。本发明实施例提供的地图数据获取方法,由于查询索引参数中包括地图层级(或者地图层级编码),服务器可以直接根据一维地理数据和地图层级查询地图有序集合得到目标点位索引数据并获取目标点位索引数据,服务器获取的目标点位索引数据为在当前的地图获取请求下需要呈现给用户的点位索引数据,无需进行抽稀,降低了服务器处理数据的难度以及服务器的处理压力,并且在海量地图数据下处理速度较快,效率较高。

步骤36、服务器根据目标点位索引数据绘制地图。

获取到目标点位索引数据后,服务器可以根据目标点位索引数据绘制地图,该地图中可以包括点位数据1、点位数据8、点位数据10、点位数据12、点位数据23、点位数据7、点位数据15、点位数据19和点位数据22。服务器绘制地图的具体实现过程可以参考相关技术,本发明实施例在此不再赘述。

步骤37、服务器向终端发送地图。

可选地,服务器可以通过与终端之间的通信连接向终端发送地图。

步骤38、终端展示服务器发送的地图。

终端接收到服务器发送的地图后,可以展示该地图。可选地,终端设置有地图展示界面,终端可以在该地图展示界面上展示地图,本发明实施例对此不作限定。

需要说明的是,本发明实施例提供的地图数据获取方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。

综上所述,本发明实施例提供的地图数据获取方法,服务器接收地图获取请求,地图获取请求携带经纬度数据范围,将经纬度数据范围转化为一维地理数据范围,根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识指示点位数据。由于服务器根据一维地理数据范围获取地图数据,因此,解决了相关技术中地图数据的获取效率较低的问题,有助于提高地图数据的获取效率。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

请参考图4-1,其示出了本发明实施例提供的一种地图数据获取装置40的框图,该地图数据获取装置40可以用于执行图2所示实施例提供的地图数据获取方法或图3-1所示实施例提供的部分地图数据获取方法,且该地图数据获取装置40可以为图1所示实施环境中的服务器14中的功能单元。参见图4-1,该地图数据获取装置40可以包括但不限于:

接收模块41,用于接收地图获取请求,地图获取请求携带经纬度数据范围;

第一转化模块42,用于将经纬度数据范围转化为一维地理数据范围;

第一获取模块43,用于根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识用于指示点位数据。

综上所述,本发明实施例提供的地图数据获取装置,服务器接收地图获取请求,地图获取请求携带经纬度数据范围,将经纬度数据范围转化为一维地理数据范围,根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识指示点位数据。由于服务器根据一维地理数据范围获取地图数据,因此,解决了相关技术中地图数据的获取效率较低的问题,有助于提高地图数据的获取效率。

可选地,多个点位索引数据中的每个点位索引数据还包括地图层级,一维地理数据按照一维地理数据对应的数值的大小依次排布,地图获取请求还携带目标地图层级,第一获取模块43,用于根据一维地理数据范围和目标地图层级,从地图有序集合中获取目标点位索引数据。

可选地,经纬度数据范围包括最小经纬度数据和最大经纬度数据,一维地理数据范围包括最小一维地理数据和最大一维地理数据,请参考图4-2,其示出了本发明实施例提供的一种第一转化模块42的框图,参见图4-2,该第一转化模块42包括:

第一编码子模块421,用于对最小经纬度数据进行编码,得到最小一维地理数据;

第二编码子模块422,用于对最大经纬度数据进行编码,得到最大一维地理数据;

确定子模块423,用于根据最小一维地理数据和最大一维地理数据,确定一维地理数据范围。

可选地,请参考图4-3,其示出了本发明实施例提供的第一编码子模块421和第二编码子模块422中的任一编码子模块的框图,参见图4-3,该任一编码子模块包括:

处理单元4211,用于对任一经纬度数据中的经度数据和纬度数据分别进行标准化处理,得到标准化经度数据和标准化纬度数据;

排布单元4212,用于将标准化经度数据和标准化纬度数据按照预设方式排布,得到任一经纬度数据对应的一维地理数据。

可选地,请参考图4-4,其示出了本发明实施例提供的一种处理单元4221的框图,参见图4-4,处理单元4221包括:

确定子单元42211,用于分别确定第一数据的位数和第二数据的位数,第一数据为经度数据和纬度数据中的任一数据中位于小数点前的数据,第二数据为任一数据中位于小数点后的数据;

第一检测子单元42212,用于检测第一数据的位数是否等于第一预设位数;

第一补位子单元42213,用于当第一数据的位数不等于第一预设位数时,在第一数据前添加补位数据,得到标准第一数据,标准第一数据的位数等于第一预设位数;

第二检测子单元42214,用于检测第二数据的位数是否等于第二预设位数;

第二补位子单元42215,用于当第二数据的位数不等于第二预设位数时,在第二数据后添加补位数据,得到标准第二数据,标准第二数据的位数等于第二预设位数。

可选地,第一检测子单元42212,用于:

判断第一数据是否为负数;

当第一数据不为负数时,检测第一数据的位数是否等于第一预设位数;

当第一数据为负数时,根据预设的基准数据对第一数据进行正数化处理,得到处理后的第一数据,并检测处理后的第一数据的位数是否等于第一预设位数。

可选地,多个点位索引数据中的每个点位索引数据还包括地图层级编码,地图层级编码是对地图层级进行编码得到的,请参考图4-5,其示出了本发明实施例提供的一种第一获取模块43的框图,参见图4-5,该第一获取模块43包括:

编码子模块431,用于对目标地图层级进行编码,得到目标层级编码;

获取子模块432,用于根据一维地理数据范围和目标层级编码,从地图有序集合中获取目标点位索引数据。

可选地,请参考图4-6,其示出了本发明实施例提供的一种编码子模块431的框图,参见图4-6,该编码子模块431包括:

第一确定单元4311,用于确定地图有序集合对应的总地图层级数,地图有序集合对应的总地图层级数为对地图层级进行编码得到地图有序集合中的地图层级编码时采用的总地图层级数;

第二确定单元4312,用于根据总地图层级数确定目标层级编码的位数;

第三确定单元4313,用于根据目标地图层级和目标层级编码的位数,确定目标层级编码的各个编码位的数值。

可选地,任一点位数据标识对应至少一个显示地图层级,当任一点位数据标识对应至少两个显示地图层级时,至少两个显示地图层级为连续的至少两个地图层级,任一点位数据标识对应的显示地图层级能够显示任一点位数据标识指示的点位数据,地图有序集合中的任一点位索引数据中的地图层级编码为能够显示任一点位索引数据中的点位数据标识指示的点位数据的最高地图层级的编码,

获取子模块432,用于:

根据一维地理数据范围和目标层级编码,查询地图有序集合,得到目标点位索引数据,目标点位索引数据为包括目标层级编码的点位索引数据,和,所有包括高于目标地图层级的地图层级编码的点位索引数据;

获取目标点位索引数据。

可选地,请参考图4-7,其示出了本发明实施例提供的另一种地图数据获取装置40的框图,参见图4-7,在图4-1的基础上,该地图数据获取装置40还包括:

第二获取模块44,用于获取多个点位数据标识,多个点位数据标识中的每个点位数据标识指示地图上的一个点位数据;

第一确定模块45,用于确定多个点位数据标识中的每个点位数据标识对应的经纬度数据,得到多个经纬度数据;

第二转化模块46,用于将多个经纬度数据中的每个经纬度数据转化为一维地理数据,得到多个一维地理数据;

生成模块47,用于根据多个一维地理数据中的每个一维地理数据和每个一维地理数据对应的点位数据标识,生成一个点位索引数据,得到多个点位索引数据;

第二确定模块48,用于根据多个点位索引数据得到地图有序集合,其中,地图有序集合中的一维地理数据按照一维地理数据对应的数值的大小依次排布。

可选地,请参考图4-8,其示出了本发明实施例提供的一种生成模块47的框图,参见图4-8,该生成模块47包括:

确定子模块471,用于确定多个点位数据标识中的每个点位数据标识对应的地图层级,每个点位数据标识对应的地图层级为能够显示每个点位数据标识指示的点位数据的至少一个地图层级中的最高地图层级;

生成子模块472,用于根据多个一维地理数据中的每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级,生成一个点位索引数据,得到多个点位索引数据。

可选地,生成子模块472,用于:

对多个点位数据标识中的每个点位数据标识对应的地图层级进行编码,得到每个点位数据标识对应的地图层级编码;

根据多个一维地理数据中的每个一维地理数据、每个一维地理数据对应的点位数据标识和每个点位数据标识对应的地图层级编码,生成一个点位索引数据,得到多个点位索引数据。

可选地,多个点位数据标识中的每个点位数据标识指示的点位数据为在多个地图层级中的最低地图层级中显示的点位数据,确定子模块471,用于:

对多个点位数据标识指示的多个点位数据进行抽稀,得到在多个地图层级中的每个地图层级中显示的点位数据,多个点位数据中的每个点位数据能够在多个地图层级中的至少一个地图层级中显示;

将能够显示每个点位数据的至少一个地图层级中的最高地图层级,确定为每个点位数据的点位数据标识对应的地图层级。

综上所述,本发明实施例提供的地图数据获取装置,服务器接收地图获取请求,地图获取请求携带经纬度数据范围,将经纬度数据范围转化为一维地理数据范围,根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识指示点位数据。由于服务器根据一维地理数据范围获取地图数据,因此,解决了相关技术中地图数据的获取效率较低的问题,有助于提高地图数据的获取效率。

需要说明的是:上述实施例提供的地图数据获取装置在获取地图数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的地图数据获取装置实施例与地图数据获取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图5,其示出了本发明实施例提供的一种服务器50的结构示意图。该服务器50可以用于执行图2所示实施例提供的地图数据获取方法和图3-1所示实施例提供的地图数据获取方法的相关步骤。参见图5,该服务器50包括:处理器51、网络接口52或者其他通信接口、存储器53和通信总线54,通信总线54与处理器51、网络接口52和存储器53连接,通信总线54用于实现这些装置之间的连接通信。处理器51用于执行存储器53中存储的可执行模块,例如计算机程序。存储器53可能包括高速随机存取存储器(英文:randomaccessmemory;简称:ram),也可能还包括非不稳定的存储器(英文:non-volatilememory),例如至少一个磁盘存储器。通过网络接口实现该服务器50与其他网元之间的通信连接,服务器50与其他网元之间使用互联网、广域网、本地网、城域网等通信。

在一些实施方式中,存储器53存储了程序531,程序531可以被处理器51执行,处理器51被配置为执行程序531实现图2所示实施例提供的地图数据获取方法和图3-1所示实施例提供的地图数据获取方法的相关步骤。

综上所述,本发明实施例提供的服务器,服务器接收地图获取请求,地图获取请求携带经纬度数据范围,将经纬度数据范围转化为一维地理数据范围,根据一维地理数据范围,从预设的地图有序集合中获取目标点位索引数据,地图有序集合中存储有多个点位索引数据,多个点位索引数据中的每个点位索引数据包括一维地理数据和点位数据标识,点位数据标识指示点位数据。由于服务器根据一维地理数据范围获取地图数据,因此,解决了相关技术中地图数据的获取效率较低的问题,有助于提高地图数据的获取效率。

本发明实施例还提供了一种地图数据获取系统,该地图数据获取系统包括终端和服务器。在一种可能的实现方式中,服务器包括图4-1或图4-7所示的地图数据获取装置40,在另一种可能的实现方式中,服务器为图5所示的服务器50。

一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行图2和图3-1所描述的地图数据获取方法。

一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机图2和图3-1所描述的地图数据获取方法。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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