发明内容
本发明的目的在于提供一种地图数据处理方法、装置、计算机设备及存储介质,能够保证地图数据精准有效的动态展示,并可以减少请求响应时间。
根据本发明的一个方面,提供了一种地图数据处理方法,所述方法包括:
接收由客户端发送来的地图数据请求;其中,所述地图数据请求包括:地图缩放级别、显示界面尺寸和中心点地理坐标;
从预设数据库中查找到与所述地图缩放级别对应的显示集合列表和比例尺;其中,所述显示集合列表包括多个显示集合,每个显示集合有对应的标准地理坐标;
根据所述显示界面尺寸、中心点地理坐标和比例尺确定出需要在显示界面中显示的地域范围;
根据每个显示集合的标准地理坐标,从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合发送至所述客户端,以供所述客户端将确定出的各个显示集合的标识绘制在所述显示界面的相应位置。
可选的,所述从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合发送至所述客户端,具体包括:
获取第一待聚类数据点;其中,所述第一待聚类数据点为距上次接收到地图数据请求之后的时间段内的新增数据点和被修改历史数据点;
将所述第一待聚类数据点,根据预设聚类算法,分别聚类到所述显示集合列表中的各个显示集合中;
从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合的数据信息发送至所述客户端;其中,显示集合的数据信息包括:显示集合的标准地理坐标,以及包含在所述显示集合中的各个数据点的地理坐标和属性信息。
可选的,所述方法还包括:
按照设定时间间隔,定期将获取到的第二待聚类数据点,根据所述预设聚类算法,分别聚类到各个地图缩放级别下的显示集合中;其中,所述第二待聚类数据点包括:历史数据点、以及在所述设定时间间隔内的新增数据点和被修改历史数据点。
可选的,将所述第一待聚类数据点,根据预设聚类算法,分别聚类到所述显示集合列表中的各个显示集合中的步骤,或者将获取到的第二待聚类数据点,根据所述预设聚类算法,分别聚类到各个地图缩放级别下的显示集合中的步骤,具体包括:
针对一个地图缩放级别,从所述预设数据库中获取对应的显示集合列表,并确定出所述显示集合列表中的每个显示集合的标准地理坐标、预设距离阈值和预设数量阈值;
针对一个待聚类数据点,根据所述待聚类数据点的地理坐标以及所述显示集合列表中的每个显示集合的标准地理坐标,从所述显示集合列表中确定出距离所述待聚类数据点最近的显示集合;
判断所述待聚类数据点与最近的显示集合的距离值是否小于所述预设距离阈值,若是,则将所述待聚类数据点添加到所述显示集合中,若否,则将所述待聚类数据点添加到新建的显示集合中;
判断所述待聚类数据点所在的显示集合中的数据点的数量是否小于所述预设数量阈值,若是,则根据所述显示集合中的各个数据点的地理坐标更新所述显示集合的标准地理坐标。
可选的,所述方法还包括:
按照所述设定时间间隔,定期基于每个显示集合中的各个数据点的地理坐标,利用二维正态分布算法,校正对应显示集合的标准地理坐标。
为了实现上述目的,本发明还提供一种地图数据处理装置,所述装置包括:
接收模块,用于接收由客户端发送来的地图数据请求;其中,所述地图数据请求包括:地图缩放级别、显示界面尺寸和中心点地理坐标;
查找模块,用于从预设数据库中查找到与所述地图缩放级别对应的显示集合列表和比例尺;其中,所述显示集合列表包括多个显示集合,每个显示集合有对应的标准地理坐标;
确定模块,用于根据所述显示界面尺寸、中心点地理坐标和比例尺确定出需要在显示界面中显示的地域范围;
处理模块,用于根据每个显示集合的标准地理坐标,从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合发送至所述客户端,以供所述客户端将确定出的各个显示集合的标识绘制在所述显示界面的相应位置。
可选的,所述处理模块,具体用于:
获取第一待聚类数据点;其中,所述第一待聚类数据点为距上次接收到地图数据请求之后的时间段内的新增数据点和被修改历史数据点;
将所述第一待聚类数据点,根据预设聚类算法,分别聚类到所述显示集合列表中的各个显示集合中;
从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合的数据信息发送至所述客户端;其中,显示集合的数据信息包括:显示集合的标准地理坐标,以及包含在所述显示集合中的各个数据点的地理坐标和属性信息。
可选的,所述装置还包括:
聚类模块,用于按照设定时间间隔,定期将获取到的第二待聚类数据点,根据所述预设聚类算法,分别聚类到各个地图缩放级别下的显示集合中;其中,所述第二待聚类数据点包括:历史数据点、以及在所述设定时间间隔内的新增数据点和被修改历史数据点。
为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的地图数据处理方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的地图数据处理方法的步骤。
本发明提供的地图数据处理方法、装置、计算机设备及存储介质,服务端将各个地图缩放级别下的用于在显示界面中展示的显示集合事先存储到数据库中,当客户端请求地图数据时,只需要执行一次数据库的查找操作,即可查找到与当前地图缩放级别对应的显示集合列表,再执行一次筛选操作,以将与显示界面对应的区域范围内的显示集合反馈给客户端,以供客户端进行地图数据的展示;与现有技术相比,可以减少请求响应时间,提高用户体验度;此外,用户通过在显示界面中点击每个显示集合的标识,可以查询位于对应显示集合中的各个数据点的相关信息,从而能够保证地图数据精准有效的动态展示。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种地图数据处理方法,应用于服务端,如图1所示,该方法具体包括以下步骤:
步骤S101:接收由客户端发送来的地图数据请求;其中,所述地图数据请求包括:地图缩放级别、显示界面尺寸和中心点地理坐标。
通常,地图软件会为用户提供多个地图缩放级别,用户可以通过调整地图缩放级别以获取不同区域范围内的地图数据;随着地图缩放级别的增大,在客户端的显示界面中显示的区域范围越小,即可以得到更精确的地图数据。
当用户通过安装在客户端上的地图软件来获取地图数据时,客户端需要将当前地图软件所处于的地图缩放级别、客户端的显示界面的尺寸大小、以及当前显示界面的中心点所对应的地理坐标发送至所述服务端。
步骤S102:从预设数据库中查找到与所述地图缩放级别对应的显示集合列表和比例尺;其中,所述显示集合列表包括多个显示集合,每个显示集合有对应的标准地理坐标。
在本实施例中,会为每个地图缩放级别设置对应的比例尺;例如,地图软件的地图缩放级别包括19级,当地图缩放级别为1级时,对应的比例尺为10000千米,当地图缩放级别为19级时,对应的比例尺为20米。
此外,在本实施例中,为每个地图缩放级别设置对应的显示集合列表,在一个地图缩放级别的显示集合列表中包含多个显示集合,每个显示集合中包含在设定区域范围内的多个数据点;此外,每个显示集合均有对应的标准地理坐标,且一个显示集合的标准地理坐标是根据该显示集合中的各个数据点的地理坐标计算出的。例如,以摄像头的云管控平台为例,在全国范围内的各个街口和道路上都安装有摄像头,每个摄像头都是一个数据点;在较小的地图缩放级别下,对应的显示集合列表中的各个显示集合对应的是各个城市(例如,北京、上海、广州),在较大的地图缩放级别下,对应的显示集合列表中的各个显示集合对应的是一个城市中的各个区县(例如,东城区、西城区、海淀区、朝阳区);当在较小的地图缩放级别时,在显示界面中展示的是设定区域范围内的各个城市的标识,当用户点击一个城市的标识之后,可以进一步展示包含在对应城市中的各个数据点的相关信息;当在较大的地图缩放级别时,在显示界面中展示的是设定区域范围内的各个区县标识,当用户点击一个区县的标识后,可以进一步展示包含在对应区县中的各个数据点的相关信息。
步骤S103:根据所述显示界面尺寸、中心点地理坐标和比例尺确定出需要在显示界面中显示的地域范围。
步骤S104:根据每个显示集合的标准地理坐标,从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合发送至所述客户端,以供所述客户端将确定出的各个显示集合的标识绘制在所述显示界面的相应位置。
在本实施例中,当客户端向服务端请求地图数据时,所述服务端实际上只进行了一次数据库的查找操作,所述服务端根据地图缩放级别,从数据库中查找到对应的显示集合列表,并确定出可在所述客户端的显示界面中呈现的区域范围,最后将所述显示集合列表中的位于所述区域范围内的显示集合发送至所述客户端。所述客户端会根据每个显示集合的标准地理位置,将各个显示集合的标识绘制在所述显示界面的相应位置,从而为客户提供在所述地图缩放级别下的地图数据。
具体的,步骤S104,包括:
步骤A1:获取第一待聚类数据点;其中,所述第一待聚类数据点为距上次接收到地图数据请求之后的时间段内的新增数据点和被修改历史数据点;
步骤A2:将所述第一待聚类数据点,根据预设聚类算法,分别聚类到所述显示集合列表中的各个显示集合中;
步骤A3:从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合的数据信息发送至所述客户端;其中,显示集合的数据信息包括:显示集合的标准地理坐标,以及包含在所述显示集合中的各个数据点的地理坐标和属性信息。
由于数据点会动态的增加、删除或被修改,所以当用户通过客户端向服务端请求地图数据时,除了需要从数据库中获取当前地图缩放级别下的显示集合,还需要对新增数据点和被修改历史数据点进行聚类分组,以更新各个显示集合。
此外,在本实施例中,用户不仅可以通过地图软件查看在特定地图缩放级别下的各个显示集合的位置信息,还可以通过点击各个显示集合以得到位于对应显示集合中的各个数据点的相关信息。
进一步的,所述方法还包括:
按照设定时间间隔,定期将获取到的第二待聚类数据点,根据所述预设聚类算法,分别聚类到各个地图缩放级别下的显示集合中;其中,所述第二待聚类数据点包括:历史数据点、以及在所述设定时间间隔内的新增数据点和被修改历史数据点。
在本实施例中有两种触发数据点聚类的机制,第一种是当接收到由客户端发送来的地图数据请求时,对距上次接收到地图数据请求之后的时间段内的新增数据点和被修改历史数据点进行聚类操作,第二种是按照设定时间间隔,定期对历史数据点以及在设定时间间隔内的新增数据点和被修改历史数据点进行聚类操作。
进一步的,所述方法还包括:
按照所述设定时间间隔,定期基于每个显示集合中的各个数据点的地理坐标,利用二维正态分布算法,校正对应显示集合的标准地理坐标。
在本实施例中,按照设定时间间隔,定期对新增数据点和历史数据点进行聚类操作,以得到各个地图缩放级别下的显示集合列表,并根据每个显示集合中的数据点的地理坐标对各个显示集合的标准地理坐标进行校正,以得到更精准的标准地理坐标。
更进一步的,将所述第一待聚类数据点,根据预设聚类算法,分别聚类到所述显示集合列表中的各个显示集合中的步骤,或者将获取到的第二待聚类数据点,根据所述预设聚类算法,分别聚类到各个地图缩放级别下的显示集合中的步骤,具体包括:
步骤B1:针对一个地图缩放级别,从所述预设数据库中获取对应的显示集合列表,并确定出所述显示集合列表中的每个显示集合的标准地理坐标、预设距离阈值和预设数量阈值;
步骤B2:针对一个待聚类数据点,根据所述待聚类数据点的地理坐标以及所述显示集合列表中的每个显示集合的标准地理坐标,从所述显示集合列表中确定出距离所述待聚类数据点最近的显示集合;
步骤B3:判断所述待聚类数据点与最近的显示集合的距离值是否小于所述预设距离阈值,若是,则将所述待聚类数据点添加到所述显示集合中,若否,则将所述待聚类数据点添加到新建的显示集合中;
步骤B4:判断所述待聚类数据点所在的显示集合中的数据点的数量是否小于所述预设数量阈值,若是,则根据所述显示集合中的各个数据点的地理坐标更新所述显示集合的标准地理坐标。
需要说明的是,每个显示集合的预设距离阈值L和预设数量阈值N均不相同;一个显示集合包含以标准地理坐标为原点以L为半径的地域范围内的数据点,且该显示集合的标准地理坐标只根据聚类到该显示集合中的前N个数据点的地理坐标计算得到。
优选的,在实际应用中,可以使用KNN模型增量学习算法作为本实施例中的聚类算法,还可以使用二分搜索算法从显示集合列表中确定出距离待聚类数据点最近的显示集合。
实施例二
本发明实施例提供了一种地图数据处理装置,如图2所示,该装置具体包括以下组成部分:
接收模块201,用于接收由客户端发送来的地图数据请求;其中,所述地图数据请求包括:地图缩放级别、显示界面尺寸和中心点地理坐标;
查找模块202,用于从预设数据库中查找到与所述地图缩放级别对应的显示集合列表和比例尺;其中,所述显示集合列表包括多个显示集合,每个显示集合有对应的标准地理坐标;
确定模块203,用于根据所述显示界面尺寸、中心点地理坐标和比例尺确定出需要在显示界面中显示的地域范围;
处理模块204,用于根据每个显示集合的标准地理坐标,从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合发送至所述客户端,以供所述客户端将确定出的各个显示集合的标识绘制在所述显示界面的相应位置。
具体的,处理模块204,用于:
获取第一待聚类数据点;其中,所述第一待聚类数据点为距上次接收到地图数据请求之后的时间段内的新增数据点和被修改历史数据点;
将所述第一待聚类数据点,根据预设聚类算法,分别聚类到所述显示集合列表中的各个显示集合中;
从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合的数据信息发送至所述客户端;其中,显示集合的数据信息包括:显示集合的标准地理坐标,以及包含在所述显示集合中的各个数据点的地理坐标和属性信息。
进一步的,所述装置还包括:
聚类模块,用于按照设定时间间隔,定期将获取到的第二待聚类数据点,根据所述预设聚类算法,分别聚类到各个地图缩放级别下的显示集合中;其中,所述第二待聚类数据点包括:历史数据点、以及在所述设定时间间隔内的新增数据点和被修改历史数据点。
所述装置还包括:
校正模块,用于按照所述设定时间间隔,定期基于每个显示集合中的各个数据点的地理坐标,利用二维正态分布算法,校正对应显示集合的标准地理坐标。
更进一步的,处理模块204和所述聚类模块按照如下方式对待聚类数据点进行聚类操作:
针对一个地图缩放级别,从所述预设数据库中获取对应的显示集合列表,并确定出所述显示集合列表中的每个显示集合的标准地理坐标、预设距离阈值和预设数量阈值;
针对一个待聚类数据点,根据所述待聚类数据点的地理坐标以及所述显示集合列表中的每个显示集合的标准地理坐标,从所述显示集合列表中确定出距离所述待聚类数据点最近的显示集合;
判断所述待聚类数据点与最近的显示集合的距离值是否小于所述预设距离阈值,若是,则将所述待聚类数据点添加到所述显示集合中,若否,则将所述待聚类数据点添加到新建的显示集合中;
判断所述待聚类数据点所在的显示集合中的数据点的数量是否小于所述预设数量阈值,若是,则根据所述显示集合中的各个数据点的地理坐标更新所述显示集合的标准地理坐标。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备30至少包括但不限于:可通过系统总线相互通信连接的存储器301、处理器302。需要指出的是,图3仅示出了具有组件301-302的计算机设备30,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器301(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器301可以是计算机设备30的内部存储单元,例如该计算机设备30的硬盘或内存。在另一些实施例中,存储器301也可以是计算机设备30的外部存储设备,例如该计算机设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器301还可以既包括计算机设备30的内部存储单元也包括其外部存储设备。在本实施例中,存储器301通常用于存储安装于计算机设备30的操作系统和各类应用软件。此外,存储器301还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器302在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器302通常用于控制计算机设备30的总体操作。
具体的,在本实施例中,处理器302用于执行处理器302中存储的地图数据处理方法的程序,所述地图数据处理方法的程序被执行时实现如下步骤:
接收由客户端发送来的地图数据请求;其中,所述地图数据请求包括:地图缩放级别、显示界面尺寸和中心点地理坐标;
从预设数据库中查找到与所述地图缩放级别对应的显示集合列表和比例尺;其中,所述显示集合列表包括多个显示集合,每个显示集合有对应的标准地理坐标;
根据所述显示界面尺寸、中心点地理坐标和比例尺确定出需要在显示界面中显示的地域范围;
根据每个显示集合的标准地理坐标,从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合发送至所述客户端,以供所述客户端将确定出的各个显示集合的标识绘制在所述显示界面的相应位置。
上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
接收由客户端发送来的地图数据请求;其中,所述地图数据请求包括:地图缩放级别、显示界面尺寸和中心点地理坐标;
从预设数据库中查找到与所述地图缩放级别对应的显示集合列表和比例尺;其中,所述显示集合列表包括多个显示集合,每个显示集合有对应的标准地理坐标;
根据所述显示界面尺寸、中心点地理坐标和比例尺确定出需要在显示界面中显示的地域范围;
根据每个显示集合的标准地理坐标,从所述显示集合列表中确定出位于所述地域范围内的显示集合,并将确定出的显示集合发送至所述客户端,以供所述客户端将确定出的各个显示集合的标识绘制在所述显示界面的相应位置。
上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。