CN116595025B - 矢量瓦片的动态更新方法、终端和介质 - Google Patents

矢量瓦片的动态更新方法、终端和介质 Download PDF

Info

Publication number
CN116595025B
CN116595025B CN202310877272.9A CN202310877272A CN116595025B CN 116595025 B CN116595025 B CN 116595025B CN 202310877272 A CN202310877272 A CN 202310877272A CN 116595025 B CN116595025 B CN 116595025B
Authority
CN
China
Prior art keywords
tile
level
updated
tiles
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310877272.9A
Other languages
English (en)
Other versions
CN116595025A (zh
Inventor
余华芬
陈彬
倪慧珠
姜陆炯
傅轩诚
戴星星
左超
郦春峰
李滨
谢静静
孙嘉敏
许剑剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Institute Of Surveying And Mapping Science And Technology
Original Assignee
Zhejiang Institute Of Surveying And Mapping Science And Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Institute Of Surveying And Mapping Science And Technology filed Critical Zhejiang Institute Of Surveying And Mapping Science And Technology
Priority to CN202310877272.9A priority Critical patent/CN116595025B/zh
Publication of CN116595025A publication Critical patent/CN116595025A/zh
Application granted granted Critical
Publication of CN116595025B publication Critical patent/CN116595025B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种矢量瓦片的动态更新方法、终端和介质,该方法包括:响应于更新数据的输入,采用分布式处理方式更新地理信息数据的同时,生成相应的更新消息,并将更新消息写入至消息队列中;订阅所述消息队列中的更新消息,并获取所述更新消息中的地理要素信息,进而确定待更新固定显示层级和待更新渲染显示层级;基于更新后的地理信息数据,对所述待更新固定显示层级对应的一级瓦片进行更新,和对所述待更新渲染显示层级对应的二级瓦片进行限制访问;本发明有效地降低了大规模地理信息数据场景下数据库的读写压力,提高了矢量瓦片的动态更新效率。

Description

矢量瓦片的动态更新方法、终端和介质
技术领域
本发明涉及数据库技术领域,尤其涉及矢量瓦片的动态更新方法、终端和计算机存储介质。
背景技术
瓦片技术作为一种地图缓存技术,已被广泛地应用于各种地图应用场景中,如地理信息发布系统、国土规划展示系统和导航系统等,可以大大降低服务器端的读写压力,实现众多客户端的并发访问和数据处理。其中,矢量地图瓦片(以下简称为“矢量瓦片”)作为主要的瓦片类型之一,是将矢量数据采用多层次模型分割成矢量要素文件存储在服务器端,再由客户端根据指定样式进行渲染显示,以实现矢量地图的在线访问和处理。
目前,各矢量地图数据通常是基于各管理部门的平台进行管理和发布,用户往往需要访问不同的平台以获取数据,导致数据的获取效率较低;且由于不同数据的更新周期不一、数据源不同和格式存在差异等原因,导致数据的处理过程十分复杂,以及使用效率低下;为便于各管理部门的协同办公、数据处理和公众访问等,需要将各管理部门的发布数据基于同一平台进行管理和展示;然而,由于各管理部门需发布的数据繁多,将各数据进行汇总管理后,则会形成大规模的数据库(千万级以上的数据);且随着数据集成度的不断提升,高并发访问和更新的几率也随之增大;而对于大规模的数据库,于高并发访问更新的同时,受服务器的性能限制,很难实现与更新数据对应的矢量瓦片的同步更新,导致平台往往仅能实现静态化的更新,而无法实现可视化的数据在线更新,即需要在单个批次的数据全部更新后,再一并展示于同一平台上以供用户访问,而无法同时执行数据更新和数据访问两个过程,也无法实现单个数据更新后的直接展示,大大地降低了所获取数据的准确性,且影响了用户的访问体验和平台的效能。
因此,对于大规模的数据库,如何实现高并发访问(如1000QPS)下的在线更新,已成为本领域亟待解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种矢量瓦片的动态更新方法、终端和计算机存储介质,可以解决现有的矢量瓦片更新方法无法支持大规模数据库,于高并发访问下的在线更新,进而导致不同部门的公共服务数据无法于同一平台上管理和发布等问题。
为实现上述目的及其他相关目的,本发明于第一方面提供一种矢量瓦片的动态更新方法,适用于服务器端,所述服务器端中存储地理信息数据和矢量瓦片;所述矢量瓦片为基于预设的多级矢量瓦片层级结构对所述地理信息数据预切片后获得,包括一级瓦片,和与所述一级瓦片关联的二级瓦片;其中,所述一级瓦片为基于该层级结构中的固定显示层级切片后所获得的瓦片;所述一级瓦片关联的二级瓦片为基于该固定显示层级所关联的渲染显示层级,对该一级瓦片切片后所获得的瓦片;所述矢量瓦片的动态更新方法,包括:响应于更新数据的输入,生成对应的更新消息,并将所述更新消息写入至消息队列中;和基于所述更新数据,对所述地理信息数据进行更新;其中,所述更新消息中包含所述更新数据的地理要素信息;所述地理要素信息至少包括要素类别信息和位置信息;订阅所述消息队列中的各更新消息,并获取所述更新消息中的地理要素信息;根据地理要素信息与固定显示层级之间的映射关系,确定待更新固定显示层级和确定待更新渲染显示层级;基于更新后的地理信息数据,对所述待更新固定显示层级对应的一级瓦片进行更新,和对所述待更新渲染显示层级对应的二级瓦片进行限制访问。
于本发明一实施例中,所述矢量瓦片的动态更新方法,还包括:响应于访问请求,提取所述访问请求中包含的瓦片请求信息;检测所述服务器端是否存储有与所述瓦片请求信息对应的二级瓦片,如是,则返回对应的二级瓦片;如否,则基于相关联一级瓦片生成对应的新二级瓦片,并返回该新二级瓦片;其中,所述相关联一级瓦片为与所述二级瓦片相关联的一级瓦片。
于本发明一实施例中,所述矢量瓦片的动态更新方法,还包括:对生成的所述二级瓦片设置有效时长,并于生成后统计所述二级瓦片的存储时间;于所述存储时间达到有效时长时,则对该二级瓦片执行所述限制访问。
于本发明一实施例中,所述瓦片请求信息包括目标瓦片编号,则所述新二级瓦片的生成方式,包括:获取预先构建的瓦片编号与所述渲染显示层级之间的映射关系;基于瓦片编号与所述渲染显示层级之间的映射关系,将与所述目标瓦片编号对应的渲染显示层级作为待更新渲染显示层级;根据所述二级瓦片与所述一级瓦片之间的关联性,于各所述一级瓦片中,提取与目标二级瓦片关联的一级瓦片,作为当前一级瓦片;其中,所述目标二级瓦片为与所述目标瓦片编号对应的二级瓦片;对所述当前一级瓦片执行所述待更新渲染显示层级下的切片处理,于切片获得的新二级瓦片中,提取与所述目标瓦片编号对应的新二级瓦片,并返回该新二级瓦片。
于本发明一实施例中,所述对当前一级瓦片执行所述待更新渲染显示层级下的切片处理,包括:将所述当前一级瓦片对应的地理信息数据作为当前数据源;对所述当前数据源,执行与所述待更新渲染显示层级对应的抽稀处理;根据所述待更新渲染显示层级下各二级瓦片的空间范围,对抽稀处理后的当前数据源进行切片,以获得所述待更新渲染显示层级下的新二级瓦片。
于本发明一实施例中,所述对待更新渲染显示层级对应的二级瓦片进行限制访问,包括:对所述待更新渲染显示层级下,且与所述更新消息相关联的二级瓦片进行限制访问;其中,与所述更新消息相关联的二级瓦片,包括:与所述更新消息所对应的更新数据的空间位置相交的二级瓦片。
于本发明一实施例中,所述对待更新渲染显示层级对应的二级瓦片进行限制访问,包括:对所述二级瓦片进行删除或状态标识;其中,所述状态标识,包括:将所述二级瓦片标识为未更新的状态。
于本发明一实施例中,所述待更新固定显示层级和确定待更新渲染显示层级的获取方式,包括:确定一更新周期,读取所述消息队列于单个更新周期内的各更新消息;基于各所述各更新消息,确定单个周期内待更新的固定显示层级和渲染显示层级;其中,所述更新周期为一预设的间隔时间。
本发明于第二方面提供一种终端,包括:处理器以及存储器,所述存储器与所述处理器之间通信连接;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上任意所述矢量瓦片的动态更新方法。
本发明于第三方面提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任意所述矢量瓦片的动态更新方法。
如上所述,本发明提供的所述矢量瓦片的动态更新方法、终端和计算机存储介质,通过对原始矢量数据进行预切片处理,和将预切片后的矢量切片数据存储于服务器端缓存中,以及通过设置消息队列,将更新内容同步存储至消息队列中,以根据消息队列中的各更新内容,执行与更新内容相关的矢量瓦片更新,实现了数据库更新与瓦片更新两个过程的解耦,使瓦片访问和瓦片更新过程可以执行异步的并发式处理,大大地降低了大规模数据库的并发读写压力,有效地提高了高并发访问时矢量瓦片的动态更新效率。
附图说明
图1显示为本发明所述矢量瓦片的动态更新方法于一实施例中的应用场景示意图。
图2显示为本发明所述多级矢量瓦片层级于一实施例中的结构示意图。
图3显示为本发明所述矢量瓦片的动态更新方法于一实施例中的流程示意图。
图4显示为本发明所述矢量瓦片的动态更新方法中步骤S200于执行时的流程示意图。
图5显示为本发明所述矢量瓦片的动态更新方法于另一实施例中的流程示意图。
图6显示为本发明中所述新二级瓦片生成方式于一实施例中的流程示意图。
图7显示为本发明中所述对当前一级瓦片执行所述待更新渲染显示层级下的切片处理过程于一实施例中的流程示意图。
图8显示为本发明所述矢量瓦片的动态更新方法于又一实施例中的流程示意图。
图9显示为本发明所述矢量瓦片的动态更新方法于再一实施例中的应用场景示意图。
图10显示为本发明所述矢量瓦片的动态更新方法于再一实施例中的流程示意图。
图11显示为本发明所述矢量瓦片的动态更新方法于其他一实施例中的流程示意图。
图12显示为本发明所述矢量瓦片的动态更新方法于其他一实施例中的流程示意。
图13显示为本发明中所述终端于一实施例中的结构示意图。
元件标号说明:
100、服务器端;101、第一缓存空间;102、第二缓存空间;103、第三缓存空间;200、第一客户端;300、第二客户端;5、终端;51、存储器;52、处理器。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中提供的图示仅以示意方式说明本发明的基本构想,遂图式。
为解决现有技术中存在的问题,本发明于第一方面提供一种矢量瓦片的动态更新方法,适用于服务器端;请参阅图1,示出为本发明提供的所述矢量瓦片的动态更新方法于一实施例中的应用场景示意图;如图1所示,所述服务器端100连接第一客户端200和第二客户端300,用于分别与第一客户端200和第二客户端300进行交互。
具体的,所述第一客户端200为请求访问客户端,其通过发送访问请求至服务器端100,以获取相对应的矢量瓦片;示例性的,所述第一客户端为地图浏览客户端。
所述第二客户端300为要素更新客户端,其发送地理要素的更新数据至服务器端100中,以使服务器端基于该更新数据对所述服务器中存储的地理信息数据进行更新。
所述服务器端100中存储有数据库和各矢量瓦片。
其中,所述数据库中存储各地理信息数据;所述地理信息数据包含房屋、交通、水系、绿地、兴趣点、地址和其他现有地理要素中的一种或多种。示例性的,所述地理信息数据为浙江省地理信息公共服务平台的基础地理信息数据,其数据量在8000w级别及以上。
所述矢量瓦片为基于预设的多级矢量瓦片层级结构,对所述地理信息数据预切片后获得各瓦片数据,包括一级瓦片,和与所述一级瓦片关联的二级瓦片。
其中,所述多级矢量瓦片层级结构包括若干个固定显示层级,和与所述固定显示层级关联的渲染显示层级;所述固定显示层级为所述多级矢量瓦片层级结构各显示层级中预先选定的若干个显示层级,即其关联的地理要素为预先固定类别的层级;所述固定显示层级关联的渲染显示层级包括,当前固定显示层级和位于当前固定显示层级与下一固定显示层级之间的各显示层级。
所述一级瓦片为基于所述固定显示层级切片后获得的矢量瓦片;对于单个一级瓦片,其关联的二级瓦片为基于关联渲染显示层级对该一级瓦片切片后所获得的矢量瓦片;
其中,所述关联渲染显示层级为该一级瓦片切片时的固定显示层级所关联的渲染显示层级。
以下将以一具体实施例进行具体说明;请参阅图2,示出为浙江省域范围内所述多级矢量瓦片层级结构的示意图;如图2所示,所述多级矢量瓦片层级结构包含第8至第20显示层级,为比例尺依次增大的各显示层级。
其中,第8层级、第11层级和第14层级分别对应为第一至第三固定显示层级,第9层级和第10层级为第一固定显示层级关联的渲染显示层级,第12层级和第13层级为第二固定显示层级关联的渲染显示层级,第15层级至第20层级为第三固定显示层级关联的渲染显示层级。
相应的,所述一级瓦片包括第8层级、第11层级和第14层级下的矢量瓦片,则第8层级至第10层级下的矢量瓦片为所述第8层级一级瓦片所对应的二级瓦片,第11层级至第13层级下的矢量瓦片为所述第11层级一级瓦片所对应的二级瓦片,第14层级至第20层级下的矢量瓦片为所述第14层级一级瓦片所对应的二级瓦片。
本发明提供的所述矢量瓦片的动态更新方法,在所述第一用户端对矢量瓦片进行高并发访问的同时,可根据第二用户端发送的更新数据,对服务器端存储的矢量瓦片进行瓦片更新。
请参阅图3,示出为本发明实施例中所述矢量瓦片的动态更新方法的流程示意图;如图3所示,该方法包括如下步骤:
S100,响应于更新数据的输入,根据所述更新数据生成对应的更新消息,并将所述更新消息写入至所述消息队列中;基于所述更新数据,对所述数据库中的地理信息数据进行更新,以获得更新后的地理信息数据;
其中,所述更新消息中至少包含所述更新数据的地理要素信息,即更新数据所对应的地理要素的地理信息;于一具体实施例中,所述地理要素信息至少包括要素类别信息和位置信息。
具体的,于第二客户端对地理要素进行更新后,将该更新的地理要素作为更新数据上传至所述服务器端中;所述更新数据中包含该更新地理要素的矢量信息和属性信息;其中,所述属性信息至少包括该更新地理要素的要素类别信息和位置信息。
所述服务器端于接收到所述更新数据后,对所述消息队列和对所述数据库进行同步更新。
于本实施例中,所述对所述消息队列进行更新,包括:
提取所述更新数据的要素类别信息和位置信息,基于该要素类别信息和位置信息生成对应的更新消息;将各所述更新消息根据该更新消息的生成次序,写入至所述消息队列中存储。
于本实施例中,所述对数据库进行更新,包括:
基于所述更新数据的空间位置/范围,对相关地理要素的空间位置/范围进行调整,和/或基于所述更新内容的属性信息,对所述相关地理要素的属性信息进行修改,以获得新的地理信息数据。
其中,所述相关地理要素为与所述更新内容为同一地理要素或空间相关联的地理要素数据。
可选的,采用分布式处理方法同步执行消息队列的更新和数据库的更新,在提高数据库更新效率的同时,可确保数据库更新与消息队列写入的原子性,即所述消息队列更新与否与所述数据库更新与否相关联,两个过程为同时成功或者同时失败。
S200,订阅所述消息队列中的各更新消息,并获取所述更新消息中的地理要素信息;根据各地理要素信息与固定显示层级之间的映射关系,确定待更新固定显示层级和确定待更新渲染显示层级;基于更新后的地理信息数据,对所述待更新固定显示层级对应的一级瓦片进行更新,和所述对待更新渲染显示层级对应的二级瓦片进行限制访问;
具体的,步骤S200于执行时,如图4所示,包括以下子步骤:
S201,根据所述更新消息所包含的地理要素信息,确定与所述更新消息对应的固定显示层级,将对应的所述固定显示层级确定为待更新固定显示层级;将所述待更新固定显示层级关联的渲染显示层级确定为待更新渲染显示层级;
具体的,于所述消息队列中订阅各所述更新消息,提取所述更新消息中包括的所述地理要素信息;所述地理要素信息包括要素类别信息,根据所述要素类别信息与所述固定显示层级之间的映射关系,将与所述要素类别信息对应的固定显示层级确定为待更新固定显示层级。
可选的,所述地理要素信息还包括地理要素的要素编号;根据预先构建的要素编号与瓦片编号之间的映射关系,将与要素编号对应的瓦片编号作为待更新的瓦片编号;基于所述瓦片编号与固定显示层级之间的映射关系,将与所述待更新的瓦片编号对应的固定显示层级确定为所述待更新固定显示层级;其中,所述瓦片编号包括瓦片的行列号。
于确定所述待更新固定显示层级后,将所述待更新固定显示层级关联的渲染显示层级确定为待更新渲染显示层级。
S202,基于更新后新的地理信息数据,根据所述待更新固定显示层级下各一级瓦片的空间范围进行切片,并将切片后所获得新的一级瓦片替换之前相同编号的瓦片;
具体的,基于所述地理要素类别与固定显示层级之间的映射关系,于所述更新后的地理信息数据中,提取与待更新固定显示层级对应的地理要素,作为当前数据源;基于所述待更新固定显示层级下一级瓦片的空间范围,对所述当前数据源进行切片,以获得待更新固定显示层级下新的一级瓦片,并将新的一级瓦片,替换缓存中相同编号的一级瓦片,以实现所述一级瓦片的更新。
S203,将与所述待更新渲染显示层级对应的二级瓦片进行删除或标识。
具体的,于确定所述待更新渲染显示层级后,于所述服务器端中,删除所述待更新渲染显示层级对应的各二级瓦片。
可选的,对所述固定显示层级所关联的渲染显示层级下的二级瓦片进行限制访问的实现方式,还可以为:
于确定所述待更新渲染显示层级后,将与所述待更新渲染显示层级对应的二级瓦片标识为未更新的状态,以使第一客户端在访问该二级瓦片时获知该瓦片的当前状态信息。
可选的,采用线程池技术同时执行所述一级瓦片的更新和所述二级瓦片的限制访问,以进一步提高瓦片的更新效率。
进一步的,所述服务器端利用分布式处理技术,对所述地理信息数据执行并发式的切片处理。
可选的,所述分布式处理技术为基于Hadoop分布式架构执行的并发操作,以提高服务器端的并发切片效率。
可选的,所述矢量瓦片的动态更新方法于执行步骤S200时,还包括:
基于虚拟节点,对所述消息队列中的各所述更新消息执行弹性伸缩式的多节点并发处理;进一步的,各所述虚拟节点均采用多线程处理方式进行并发处理。
可选的,所述矢量瓦片的动态更新方法于一些实施例中,如图5所示,还包括:
S300,响应于第一客户端的访问请求,提取所述访问请求中包含的瓦片请求信息;检测是否存储有与所述瓦片请求信息对应的二级瓦片,如是,则返回对应的二级瓦片;如否,则基于相关联的一级瓦片生成对应的二级瓦片,并返回该二级瓦片。
其中,所述相关联的一级瓦片为与所述二级瓦片相关联的一级瓦片。
具体的,所述第一客户端发送矢量瓦片的访问请求至所述服务器端中,所述服务器端于接收到所述访问请求后,对该访问请求进行解析,以提取所述访问请求中包含的瓦片请求信息。
其中,所述瓦片请求信息包括瓦片的级别、行列号或其他现有的标识信息。
所述服务器端根据所述目标瓦片编号,检测存储空间于当前时刻是否存储有与该目标瓦片编号对应的二级瓦片,如存在,则返回对应的二级瓦片;如不存在,则生成对应的新二级瓦片,于生成后返回该新二级瓦片。
于一具体实例中,所述新二级瓦片的生成方式,如图6所示,包括:
S301,获取预先构建的瓦片编号与所述渲染显示层级之间的映射关系;基于该映射关系,将与所述目标瓦片编号对应的渲染显示层级作为待更新渲染显示层级;
S302,根据所述二级瓦片与所述一级瓦片之间的关联性,于各所述一级瓦片中,提取与目标二级瓦片关联的一级瓦片,将该一级瓦片作为当前一级瓦片;
其中,所述目标二级瓦片为与所述目标瓦片编号对应的二级瓦片。
S303,对所述当前一级瓦片执行所述待更新渲染显示层级下的切片处理,于切片获得的各二级瓦片中,提取与所述目标瓦片编号对应的瓦片作为新的二级瓦片,并返回该新的二级瓦片。
具体的,所述对当前一级瓦片执行所述待更新渲染显示层级下的切片处理,如图7所示,包括:
S303a,将所述当前一级瓦片对应的地理信息数据,作为当前数据源;
S303b,对所述当前数据源,执行与所述待更新渲染显示层级对应的抽稀处理;
S303c,根据所述待更新渲染显示层级下各二级瓦片的空间范围,对抽稀处理后的当前数据源进行切片,以获得所述待更新渲染显示层级下的各二级瓦片。
具体的,于切片完成后,根据各矢量数据所在的二级瓦片信息,构建所述待渲染显示层级下各矢量数据与二级瓦片之间的第二索引关系;将所述二级瓦片和所述第二索引关系均存储于服务器端中,以实现多客户端高效率的并发访问。
示例性的,所述当前一级瓦片为第8层级下的瓦片,所述目标瓦片编号对应的瓦片为第9层级下的二级瓦片,则提取所述当前一级瓦片中包含的地理要素数据,将其作为当前数据源;对所述当前数据源进行相应的抽稀,对抽稀后的当前数据源执行第9层级下的切片,获得第9层级下的二级瓦片。
于一些实施例中,对于工作稳定性较差(如易出现抖动等)的服务器端,于执行步骤S200时,于接收到所述更新数据后,其对应一级瓦片的更新过程,与相应二级瓦片的限制访问处理未实现原子性,即所述一级瓦片更新成功,而相应二级瓦片未执行限制访问(如未删除成功),则于后续客户端访问时,易导致返回的二级瓦片中地理要素数据与所述数据库中的真实数据不一致等问题;为保证二级瓦片数据的准确性,和提高与数据库数据的一致性,本申请提供的所述矢量瓦片的动态更新方法在执行步骤300之后,如图8所示,还包括:
S400,对生成的所述二级瓦片设置有效时长,并于生成后开始统计所述二级瓦片的存储时间;于所述存储时间达到有效时长时,则对该二级瓦片执行所述限制访问。
其中,所述有效时长为二级瓦片存储于所述服务器端中的时间长短,为一预先设定的时长大小。
其中,所述对该二级瓦片进行限制访问的实现方式与上述实现方式相同,在此不再赘述。
需要说明的时,于本实施例中,所述步骤S100至S300的各步骤可同时执行,无执行先后次序的限定。
本发明提供的矢量瓦片的动态更新方法,在基于更新数据对地理信息数据进行更新的同时,生成对应的更新消息并将更新消息依次写入至消息队列中,以基于消息队列中的更新消息更新瓦片,实现了数据库更新与瓦片更新两个过程的解耦,有效降低了瓦片动态更新对数据库的压力,极大提高了大规模空间数据在高并发更新场景下的矢量瓦片更新效率。
为解决现有技术中存在的问题,本发明于还提供又一种矢量瓦片的动态更新方法,适用于服务器端;于本实施例中,所述服务器端的结构与图1示出的服务器端结构基本相同,不同之处在于,如图9所示,所述服务器端包括第一缓存空间101、第二缓存空间102和第三缓存空间103,所述第一缓存空间101用于存储各所述固定显示层级对应的一级瓦片,所述第二缓存空间102用于存储各所述渲染显示层级对应的二级瓦片;所述第三缓存空间103用于存储所述消息队列中的各更新消息;通过设置不同缓存空间对应存储相应的瓦片,减少切片时间和降低动态更新瓦片时数据库的压力。
可选的,于所述第一缓存空间中,采用MongoDB分布式存储技术对各所述一级瓦片进行存储,以支持数据水平扩展和高可用的读取性能。
于所述第二缓存空间中,采用Redis分布式存储技术对各所述二级瓦片进行存储,以实现对大规模矢量瓦片数据的高并发请求。
于本实施例中,所述矢量瓦片的动态更新方法与图3示出的方法基本相同,不同之处在于,如图10所示,所述步骤S200为:
S200’,订阅所述消息队列中的各更新消息,并获取所述更新消息中的地理要素信息;根据各地理要素信息与固定显示层级之间的映射关系,确定待更新固定显示层级和确定待更新渲染显示层级;基于更新后的地理信息数据,对所述待更新固定显示层级对应的一级瓦片进行更新,和对所述待更新渲染显示层级下,且与所述更新消息相关联的二级瓦片进行限制访问。
具体的,于确定待更新渲染显示层级后,基于更新消息的位置信息,对所述待更新渲染显示层级下的各二级瓦片进行筛选,该筛选过程,包括:
获取各所述更新消息对应的位置信息,即所述更新消息对应的更新数据所对应的空间位置;通过空间位置查询,获取与该空间位置相交的二级瓦片作为待更新的二级瓦片,并对各所述待更新的二级瓦片进行限制访问。
可选的,于确定所述待更新的二级瓦片后,对各所述待更新的二级瓦片配置失效时间,以于该失效时间范围内,仍可允许各所述第二客户端对该第二瓦片的访问请求,直至所述失效时间届满;通过配置待更新二级瓦片的失效时间,可以有效地提升Redis内存的使用率,同时可以降低数据库所存储的数据与二级瓦片所显示数据不一致的时长范围。
进一步的,于确定所述待更新的二级瓦片后,查询各所述待更新二级瓦片于当前的访问状态,对当前处于访问状态下的待更新二级瓦片配置失效时间,以于该失效时间范围内,仍可允许各第二客户端对该第二瓦片的访问请求,直至所述失效时间届满。
为更好地提升节服务器处理密集并发方法和瓦片更新的效能,本发明于再提供一种矢量瓦片的动态更新方法,于本实施例中,所述矢量瓦片的动态更新方法与图3示出的方法基本相同,不同之处在于,如图11所示,所述步骤S200为:
S200",确定一更新周期,订阅所述消息队列于单个更新周期内的各更新消息,并综合各所述更新消息中的地理要素信息;根据地理要素信息与固定显示层级之间的映射关系,确定待更新固定显示层级和确定待更新渲染显示层级;基于更新后的地理信息数据,对所述待更新固定显示层级对应的一级瓦片进行更新,和所述对待更新渲染显示层级对应的二级瓦片进行限制访问;
其中,所述更新周期为一预设的间隔时间;示例性的,所述更新周期为5min/次。
具体的,于单个更新周期内,依次读取所述消息队列于当前更新周期中的各更新消息,以根据各所述更新消息获取与各所述更新消息对应的待更新固定显示层级;对当前更新周期内的各所述待更新固定显示层级进行去重处理,以确定当前更新周期内的待更新固定显示层级,并确定与所述待更新固定显示层级关联的待更新渲染显示层级。
于本实施例中,所述基于更新后的地理信息数据,对待更新固定显示层级对应的一级瓦片进行更新处理,和对待更新渲染显示层级对应的二级瓦片进行限制访问的实现方式与上述实施例中的实现方式相同,在此不再赘述。
于其他实施例中,所述更新周期还可以为所述消息队列中更新消息的累计条数达到阈值;示例性的,所述更新周期为1000条/次。
可选的,所述更新周期的大小基于所述服务器端的并发访问量进行动态配置;示例性的,如访问量大于一阈值时,则增大所述更新周期,如否,则减小所述更新周期,从而于高并发访问时可通过减少二级瓦片的更新频次,降低服务器端的瓦片处理压力,提升了服务器承载性能。
需要注意的是,当检测到所述消息队列于当前更新周期内未写入更新消息时,则直接执行下一个更新周期,即不执行当前更新周期内的瓦片更新处理。
为拓展矢量切片动态更新方法的适用范围和提高方法使用的灵活性,于本发明的一其他实施例中,所述矢量瓦片的动态更新方法,如图12所示,在执行步骤S200之前,还包括:
S500,获取所述地理要素信息与所述固定显示层级之间的映射关系;
具体的,于执行步骤S200之前,响应于所述第二客户端的筛选指令,根据该筛选指令,确定与所述固定显示层级对应的地理要素,以获得所述地理要素信息与所述固定显示层级之间于当前的映射关系。
其中,所述筛选指令包括地理要素的选择指令;示例性的,用户在各所述要素类型中勾选待显示的地理要素,于勾选后,生成相应的筛选指令至服务器端中,以使服务器端根据该筛选指令,获取当前所述地理要素信息与所述固定显示层级之间的映射关系。示例性的,第8层级对应的地理要素为国道、一级水系和市级以上地名等;第11层级对应的地理要素类型为省道、二级以上水系和县级以上地名等。
需要说明的是,在执行第一次所述矢量瓦片更新过程之前,所述服务器端中存储预切片后的一级瓦片;则于执行第一次更新之前,所述矢量瓦片的动态更新方法,还包括:
获取多级矢量瓦片层级结构,所述多级矢量瓦片层级结构包括固定显示层级和与所述固定显示层级关联的渲染显示层级;根据所述固定显示层级,对地理信息数据进行切片,以获得初始的一级瓦片。
于本实施例中,所述多级矢量瓦片层级结构为基于一标准瓦片层级结构所重构建的结构,其包含所述固定显示层级和与所述固定显示层级关联的渲染显示层级。
其中,所述固定显示层级为所述多级矢量瓦片层级结构各显示层级中预先选定的若干个显示层级,即其关联的地理要素为预先固定类别的层级;所述固定显示层级关联的渲染显示层级包括,当前固定显示层级和位于当前固定显示层级与下一固定显示层级之间的各显示层级。
具体的,于确定多级矢量瓦片层级结构后,获取所述服务器端所存储的当前地理信息数据;对于单个固定显示层级,根据该固定显示层级与地理要素之间的映射关系,于所述当前地理信息数据中提取与该固定显示层级对应的地理要素数据作为当前数据源;对所述当前数据源执行该固定显示层级的切片,以获得该固定显示层级下的各一级瓦片。
于切片完成后,根据各矢量数据所在的一级瓦片信息,构建各所述固定显示层级下矢量数据与一级瓦片之间的第一索引关系。将各所述一级瓦片和所述第一索引关系均存储于服务器端中,以实现多客户端高效率的并发访问。
可选的,所述多级矢量瓦片层级结构的获取方式,包括:
于所述标准瓦片层级结构的各显示层级中,选定若干个显示层级,将其设置为固定显示层级;对于各所述固定显示层级,将位于当前固定显示层级和位于当前固定显示层级之后,且位于下一固定显示层级之前的各显示层级,作为当前固定显示层级关联的渲染显示层级,从而获得所述多级矢量瓦片层级结构。
更具体的,所述固定显示层级的选定方式,包括:
基于所述标准瓦片层级结构中各显示层级与地理要素之间的对应关系,于服务器端存储的地理信息数据中,获取各显示层级所对应地理要素的数量;比较各显示层级所对应的地理要素的数量大小,将大于阈值的显示层级设置为所述固定显示层级。
为解决现有技术中存在的技术问题,本发明实施例还提供了一种终端,请参阅13,示出了本发明所述终端的结构示意图;如图13所示,所述终端5包括相互连接的存储器51和处理器52;存储器51用于存储计算机程序,处理器52用于执行存储器存储的计算机程序,以使终端执行时可实现所述矢量瓦片的动态更新方法中的步骤。
可选的,所述存储器的数量均可以是一个或多个,所述处理器的数量可以是一个或多个,图13中均以一个为例。
可选的,所述终端中的处理器按照如上所述矢量瓦片的动态更新方法中的步骤,将一个或多个以应用程序进程对应的指令加载到存储器上中,并由处理器运行存储于存储器中的应用程序,从而实现如所述矢量瓦片的动态更新方法中的各功能,在此不在对其进行赘述。
需要说明的是,存储器包括但不限于随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。同理处理器也可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器调用时实现所述矢量瓦片的动态更新方法。
其中,计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD) 、记忆棒、软盘、机械编码设备。
这里所描述的计算机可读程序可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
综上所述,本发明提供的所述矢量瓦片的动态更新方法、终端和计算机存储介质,根据输入的更新数据更新地理信息数据,和生成相应的更新消息并将更新消息写入消息队列中,以及通过订阅消息队列,以基于各更新消息对一级瓦片进行更新和对二级瓦片进行限制访问,实现了数据库更新与瓦片更新两个过程的解耦,大大降低了数据库的更新压力,且显著地提高了大规模空间数据在高并发更新场景下的矢量瓦片更新效率;以及,通过设置二级缓存,采用MongoDB技术存储一级瓦片和采用Redis技术存储二级瓦片,有效地实现对大规模矢量瓦片数据的高并发请求。
需要说明的是,于本申请的各种实施例中,上述各步骤的序号大小并不表示执行的先后顺序,各步骤执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种矢量瓦片的动态更新方法,其特征在于,适用于服务器端,所述服务器端中存储地理信息数据和矢量瓦片;所述矢量瓦片为基于预设的多级矢量瓦片层级结构对所述地理信息数据预切片后获得,包括一级瓦片,和与所述一级瓦片关联的二级瓦片;
其中,所述一级瓦片为基于所述多级矢量瓦片层级结构中的固定显示层级切片后所获得的瓦片;所述一级瓦片关联的二级瓦片为基于该固定显示层级所关联的渲染显示层级,对该一级瓦片切片后所获得的瓦片;
所述矢量瓦片的动态更新方法,包括:
响应于更新数据的输入,生成对应的更新消息,并将所述更新消息写入至消息队列中;和基于所述更新数据对所述地理信息数据进行更新;其中,所述更新消息中包含所述更新数据的地理要素信息;
订阅所述消息队列中的各更新消息,并获取所述更新消息中的地理要素信息;根据地理要素信息与固定显示层级之间的映射关系,确定待更新固定显示层级和确定待更新渲染显示层级;基于更新后的地理信息数据,对所述待更新固定显示层级对应的一级瓦片进行更新,和对所述待更新渲染显示层级对应的二级瓦片进行限制访问。
2.根据权利要求1所述的矢量瓦片的动态更新方法,其特征在于,还包括:
响应于访问请求,提取所述访问请求中包含的瓦片请求信息;
检测所述服务器端是否存储有与所述瓦片请求信息对应的二级瓦片,如是,则返回对应的二级瓦片;如否,则基于相关联一级瓦片生成对应的新二级瓦片,并返回该新二级瓦片;
其中,所述相关联一级瓦片为与所述二级瓦片相关联的一级瓦片。
3.根据权利要求2所述的矢量瓦片的动态更新方法,其特征在于,所述瓦片请求信息包括目标瓦片编号,则所述新二级瓦片的生成方式,包括:
获取预先构建的瓦片编号与所述渲染显示层级之间的映射关系;
基于瓦片编号与所述渲染显示层级之间的映射关系,将与所述目标瓦片编号对应的渲染显示层级作为待更新渲染显示层级;
根据所述二级瓦片与所述一级瓦片之间的关联性,于各所述一级瓦片中,提取与目标二级瓦片关联的一级瓦片,作为当前一级瓦片;其中,所述目标二级瓦片为与所述目标瓦片编号对应的二级瓦片;
对所述当前一级瓦片执行所述待更新渲染显示层级下的切片处理,于切片获得的新二级瓦片中,提取与所述目标瓦片编号对应的新二级瓦片,并返回该新二级瓦片。
4.根据权利要求3所述的矢量瓦片的动态更新方法,其特征在于,对所述当前一级瓦片执行所述待更新渲染显示层级下的切片处理,包括:
将所述当前一级瓦片对应的地理信息数据作为当前数据源;
对所述当前数据源,执行与所述待更新渲染显示层级对应的抽稀处理;
根据所述待更新渲染显示层级下各二级瓦片的空间范围,对抽稀处理后的当前数据源进行切片,以获得所述待更新渲染显示层级下的新二级瓦片。
5.根据权利要求1所述的矢量瓦片的动态更新方法,其特征在于,对所述待更新渲染显示层级对应的二级瓦片进行限制访问,包括:
对所述待更新渲染显示层级下,且与所述更新消息相关联的二级瓦片进行限制访问;其中,与所述更新消息相关联的二级瓦片,包括:
与所述更新消息所对应的更新数据的空间位置相交的二级瓦片。
6.根据权利要求1所述的矢量瓦片的动态更新方法,其特征在于,还包括:
对生成的所述二级瓦片设置有效时长,并于生成后统计所述二级瓦片的存储时间;当所述存储时间达到有效时长时,则对该二级瓦片执行所述限制访问。
7.根据权利要求1所述的矢量瓦片的动态更新方法,其特征在于,对所述待更新渲染显示层级对应的二级瓦片进行限制访问,包括:
对所述二级瓦片进行删除或状态标识;其中,所述状态标识包括:
将所述二级瓦片标识为未更新的状态。
8.根据权利要求1所述的矢量瓦片的动态更新方法,其特征在于,所述待更新固定显示层级和待更新渲染显示层级的获取方式,包括:
确定一更新周期,读取所述消息队列于单个更新周期内的各更新消息;基于各所述更新消息,确定单个周期内待更新的固定显示层级和渲染显示层级;
其中,所述更新周期为一预设的间隔时间。
9.一种终端,其特征在于,包括:处理器以及存储器,所述存储器与所述处理器之间通信连接;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如权利要求1至8中任一项所述的矢量瓦片的动态更新方法。
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的矢量瓦片的动态更新方法。
CN202310877272.9A 2023-07-18 2023-07-18 矢量瓦片的动态更新方法、终端和介质 Active CN116595025B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310877272.9A CN116595025B (zh) 2023-07-18 2023-07-18 矢量瓦片的动态更新方法、终端和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310877272.9A CN116595025B (zh) 2023-07-18 2023-07-18 矢量瓦片的动态更新方法、终端和介质

Publications (2)

Publication Number Publication Date
CN116595025A CN116595025A (zh) 2023-08-15
CN116595025B true CN116595025B (zh) 2023-09-15

Family

ID=87590335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310877272.9A Active CN116595025B (zh) 2023-07-18 2023-07-18 矢量瓦片的动态更新方法、终端和介质

Country Status (1)

Country Link
CN (1) CN116595025B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118377840B (zh) * 2024-06-24 2024-09-10 国信司南(北京)地理信息技术有限公司 一种基于要素标记的矢量切片局部更新方法及应用

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2789732A1 (en) * 2011-09-15 2013-03-15 Fujitsu Limited Information management method and information management apparatus
CN103279487A (zh) * 2013-04-25 2013-09-04 中国科学院遥感与数字地球研究所 一种地图瓦片缓存的组织和管理方法
CN109147547A (zh) * 2018-07-26 2019-01-04 浙江省测绘科学技术研究院 一种基于矢量瓦片的注记选位与动态避让方法
CN109657024A (zh) * 2018-12-12 2019-04-19 武汉中科天宇科技有限公司 一种三维地图数据的存储、查询和展示系统及相应的方法
CN112231426A (zh) * 2020-10-13 2021-01-15 重庆紫光华山智安科技有限公司 一种基于矢量瓦片点数据的更新方法、系统、介质及终端
CN114297206A (zh) * 2022-03-11 2022-04-08 浙江大学 精细化高效动态瓦片地图服务发布方法、介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2526807A (en) * 2014-06-03 2015-12-09 Here Global Bv Updating single regions of a navigational database

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2789732A1 (en) * 2011-09-15 2013-03-15 Fujitsu Limited Information management method and information management apparatus
CN103279487A (zh) * 2013-04-25 2013-09-04 中国科学院遥感与数字地球研究所 一种地图瓦片缓存的组织和管理方法
CN109147547A (zh) * 2018-07-26 2019-01-04 浙江省测绘科学技术研究院 一种基于矢量瓦片的注记选位与动态避让方法
CN109657024A (zh) * 2018-12-12 2019-04-19 武汉中科天宇科技有限公司 一种三维地图数据的存储、查询和展示系统及相应的方法
CN112231426A (zh) * 2020-10-13 2021-01-15 重庆紫光华山智安科技有限公司 一种基于矢量瓦片点数据的更新方法、系统、介质及终端
CN114297206A (zh) * 2022-03-11 2022-04-08 浙江大学 精细化高效动态瓦片地图服务发布方法、介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种实时的点对点客户端在线地图动态投影方法;陈军;王广杰;吕朝阳;;四川师范大学学报(自然科学版)(第02期);142-146 *

Also Published As

Publication number Publication date
CN116595025A (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
US10810179B2 (en) Distributed graph database
US8788760B2 (en) Adaptive caching of data
US20170192863A1 (en) System and method of failover recovery
JP6103037B2 (ja) 計算機システム
CN111078147A (zh) 一种缓存数据的处理方法、装置、设备及存储介质
US11520759B2 (en) Processing time series metrics data
US20170161352A1 (en) Scalable snapshot isolation on non-transactional nosql
CN116595025B (zh) 矢量瓦片的动态更新方法、终端和介质
WO2022062184A1 (zh) 高并发查询方法、智能终端及存储介质
US20140149465A1 (en) Feature rich view of an entity subgraph
CN114244595A (zh) 权限信息的获取方法、装置、计算机设备及存储介质
US11762932B2 (en) Spatial search using key-value store
CN112433921A (zh) 用于动态埋点的方法及设备
US11429311B1 (en) Method and system for managing requests in a distributed system
US20220342888A1 (en) Object tagging
US20140280158A1 (en) Systems and methods for managing large volumes of data in a digital earth environment
JP2017526090A (ja) ホスト型分析のための動的n次元キューブ
CN117056626A (zh) 一种地图预览的方法及装置
CN114610740B (zh) 医疗数据平台的数据版本管理方法及装置
CN112035559B (zh) 热力图的展示方法、服务器及系统
CN116304079A (zh) 基于时序的图谱数据管理方法、设备和可读存储介质
Briquemont et al. Conflict-free partially replicated data types
US11789971B1 (en) Adding replicas to a multi-leader replica group for a data set
CN107526530B (zh) 数据处理方法和设备
CN114281872A (zh) 分布式序列号的生成方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant