CN107992589B - 一种svg地图数据的加载方法、装置及系统 - Google Patents
一种svg地图数据的加载方法、装置及系统 Download PDFInfo
- Publication number
- CN107992589B CN107992589B CN201711307512.2A CN201711307512A CN107992589B CN 107992589 B CN107992589 B CN 107992589B CN 201711307512 A CN201711307512 A CN 201711307512A CN 107992589 B CN107992589 B CN 107992589B
- Authority
- CN
- China
- Prior art keywords
- map
- data
- information
- svg
- basic
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Remote Sensing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Instructional Devices (AREA)
Abstract
本发明公开了一种SVG地图数据的加载方法、装置及系统,通过应用层加载地图数据,并向服务器发送数据获取请求,该数据获取请求不是获取全部地图数据的请求,而是获取增量地图数据的请求,因此根据该请求,需要对地图属性进行更新,对地图区域类元素及地图POI类元素进行筛选,并通过所有数据生成SVG地图数据,以便应用层根据返回的SVG地图数据进行加载,可见,通过这种地图增量数据的动态构建机制,可以保障对SVG地图增量数据的高效识别、构建、返回,并且对地图数据的增量式加载,提高了数据获取的响应时间,减轻了图形渲染压力,从而大大提高了地图加载效率,使得用户体验流畅。
Description
技术领域
本发明涉及矢量地图加载技术,更具体地说,涉及一种SVG地图数据的加载方法、装置及系统。
背景技术
矢量地图是地图表达的常用方式,具有数据结构紧凑,冗余度低,表达精度高,图形显示质量好,有利于网络和检索分析等优点。SVG(Scalable Vector Graphics,可缩放矢量图形)是一种使用XML(Extensible Markup Language,可扩展标记语言)来描述二维图形的图形格式,由W3C(World Wide Web ConSortium,国际互联网标准组织)制定,是互联网的新一代矢量图形标准。凭借着丰富的元素定义、良好的可读性和交互性、完全支持DOM(Document Object Model文档物件模型)、广泛的用户基础等优势,SVG已成为低成本、快速构建矢量地图的有效方式。
目前SVG地图多采用文件形式或在数据库中存储,在使用时直接展示出全部地图数据,当面对大量地图数据加载时,往往会出现地图数据获取耗时、图形渲染效率低下,给用户造成较差体验。
因此,如何提高地图数据的加载效率,提高用户体验,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种SVG地图数据的加载方法、装置及系统,以实现提高地图数据的加载效率,提高用户体验。
为实现上述目的,本发明实施例提供了如下技术方案:
一种SVG地图数据的加载方法,包括:
接收应用层发送的携带基础参数的数据获取请求;
利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息;
利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息;
利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息;
将所述第二地图基本信息、所述第二地图区域类元素信息以及所述第二地图POI类元素信息,按照SVG地图数据结构进行数据组织,生成SVG地图数据;
将所述SVG地图数据发送至所述应用层,以便所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载。
其中,本方案还包括:
从多源地图数据中提取目标地图数据,并将所述目标地图数据按照所述SVG地图数据结构更新至SVG地图数据库;
将更新后的SVG地图数据库同步更新至所述数据缓存池。
其中,所述SVG地图数据结构包括:
SVG地图根节点、地图名称节点、地图描述节点、地图边界节点、参考坐标系转换参数节点、平面坐标系转换参数节点、POI图标引用库节点、地图元素信息节点。
其中,所述利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息,包括:
利用所述基础参数中的地图编号,从数据缓存池中获取第一地图基本信息;所述第一地图基本信息包括:SVG地图根节点信息、地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息;
利用所述基础参数中的地图比例尺、地图中心点及地图范围,计算并更新所述SVG地图根节点信息中的ViewBox视窗范围属性;
根据更新后的SVG地图根节点信息,以及所述地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息生成第二地图基本信息。
其中,所述利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息,包括:
利用所述地图编号,从所述数据缓存池中获取第一地图区域类元素信息;
通过射线法判断所述第一地图区域类元素信息中的每个元素是否满足第一筛选条件,将所有满足所述第一筛选条件的元素组成第二地图区域类元素信息;
其中,满足所述第一筛选条件的第一目标元素为:所述地图中心点在所述第一目标元素的最大多边形内,或者,所述地图中心点至所述最大多边形的最小欧式距离不大于所述地图中心点至所述地图范围的最大欧式距离。
其中,所述利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息,包括:
利用所述地图编号,从所述数据缓存池中获取第一地图POI类元素信息;
判断所述第一地图POI类元素信息中的每个元素是否满足第二筛选条件,将所有满足所述第二筛选条件的元素组成第二地图POI类元素信息;
其中,满足所述第二筛选条件的第二目标元素为:所述第二目标元素的中心点至所述地图中心点的欧氏距离不大于所述地图中心点至所述地图范围的最大欧式距离。
其中,所述接收应用层发送的携带基础参数的数据获取请求,包括:
接收负载均衡单元通过加权轮训方式发送的数据获取请求。
其中,接收应用层发送的携带基础参数的数据获取请求之前,还包括:
应用层判断用户本次操作是否为初次操作;
若是,则发送第一数据获取请求;所述第一数据获取请求中携带的基础参数为初始基础参数;若否,则判断用户本次操作是否为缩放/平移操作;
若所述用户本次操作为缩放/平移操作,则根据本地缓存数据判断视窗边界处是否满足预定检测规则;若满足,则所述应用层直接根据本地缓存数据进行地图数据的加载;
若不满足,则发送第二数据获取请求;所述第二数据获取请求中携带的基础参数为与所述用户本次操作对应的基础参数。
其中,所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载,包括:
应用层将所述SVG地图数据及本地缓存数据取并集,并更新本地存储的地图数据,加载并显示更新后的地图数据。
一种SVG地图数据的加载装置,包括:
接收模块,用于接收应用层发送的携带基础参数的数据获取请求;
第二地图基本信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息;
第二地图区域类元素信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息;
第二地图POI类元素信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息;
SVG地图数据生成模块,用于将所述第二地图基本信息、所述第二地图区域类元素信息以及所述第二地图POI类元素信息,按照SVG地图数据结构进行数据组织,生成SVG地图数据;
SVG地图数据发送模块,用于将所述SVG地图数据发送至所述应用层,以便所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载。
通过以上方案可知,本发明实施例提供的一种SVG地图数据的加载方法,包括:接收应用层发送的携带基础参数的数据获取请求;利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息;利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息;利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息;将所述第二地图基本信息、所述第二地图区域类元素信息以及所述第二地图POI类元素信息,按照SVG地图数据结构进行数据组织,生成SVG地图数据;将所述SVG地图数据发送至所述应用层,以便所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载。
可见,在本方案中,应用层加载地图数据时,需要向服务器发送数据获取请求,并且该数据获取请求不是获取全部地图数据的请求,而是获取增量地图数据的请求,因此根据该请求,需要对地图属性进行更新,对地图区域类元素及地图POI类元素进行筛选,并通过所有数据生成SVG地图数据,以便应用层根据返回的SVG地图数据进行加载,可以看出,通过这种地图增量数据的动态构建机制,可以保障对SVG地图增量数据的高效识别、构建、返回,并且对地图数据的增量式加载,提高了数据获取的响应时间,减轻了图形渲染压力,从而大大提高了地图加载效率,使得用户体验流畅。本发明还公开了一种SVG地图数据的加载装置及系统,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种SVG地图数据的加载方法流程示意图;
图2为本发明实施例公开的整体系统结构示意图;
图3为本发明实施例公开的地图数据增量式数据构建过程示意图;
图4为本发明实施例公开的SVG地图数据结构示意图;
图5为本发明实施例公开的区域元素示意图;
图6为本发明实施例公开的应用层地图数据加载过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种SVG地图数据的加载方法、装置及系统,以实现提高地图数据的加载效率,提高用户体验。
参见图1,本发明实施例提供的一种SVG地图数据的加载方法,包括:
S101、接收应用层发送的携带基础参数的数据获取请求;
具体的,在本实施例中,应用层具体可以理解为发出数据获取请求的浏览器、移动APP、PC应用等,其主要用户发出数据获取请求,并通过高效的地图数据加载方法加载并显示返回的地图数据,快速响应用户操作。数据获取请求携带的基础参数主要是为了获取增量数据提供依据,该基础参数可以包括地图编号、当前展示地图的中心点位、地图范围、地图比例尺,从而通过上述基础参数实现对地图数据的获取。
需要说明的是,所述接收应用层发送的携带基础参数的数据获取请求,包括:接收负载均衡单元通过加权轮训方式发送的数据获取请求。
具体的,本实施例所述的加载方法为基于服务器的角度实现的,具体来说,服务器包含逻辑层和数据层,参见图2,为本实施例提供的整体系统结构示意图;逻辑层具体包括负载均衡、地图动态构建引擎和数据缓存池,本实施例中的负载均衡单元既可以理解为图2中的地图动态构建引擎;当负载均衡接收应用层操作请求后,会通过加权轮询方式分发请求至地图动态构建引擎,这里的地图动态构建引擎权值是由服务器物理硬件性能决定。
地图动态构建引擎接收到该请求后,会通过本实施例所述的加载方法,即通过S101-S106,对数据获取请求中的参数进行解析,分析得到地图增量数据范围,然后在数据缓存池中筛选调取符合条件的地图数据进行处理,并把处理结果按照SVG地图数据结构定义组装成完整格式的地图数据进行返回。
其中,本方案还包括:
从多源地图数据中提取目标地图数据,并将所述目标地图数据按照所述SVG地图数据结构更新至SVG地图数据库;
将更新后的SVG地图数据库同步更新至所述数据缓存池。
参见图2,由于地图数据的来源有多种形式,如文本、BIM、GIS、CAD等数据;所以在本方案中,需要建立适用于本发明的地图动态构建的SVG地图数据格式标准,做为数据转换的基础。然后根据建立的SVG地图数据格式标准,把地图数据结构分层级建立相应的关系数据库模型。最后建立数据转换模型和数据更新策略,即通过数据转换模型把多源地图数据转至标准化建立的数据库,并通过该转换程序提取多源数据中相关地图数据,分层级存储或更新SVG地图数据库。
其中,本方案中的所述SVG地图数据结构包括:SVG地图根节点、地图名称节点、地图描述节点、地图边界节点、参考坐标系转换参数节点、平面坐标系转换参数节点、POI图标引用库节点、地图元素信息节点。
可以理解的是,虽然数据均保存在SVG地图数据库总,但是为了提高逻辑层获取数据的速度,在逻辑层中建立数据缓存池,该数据缓存池采用数据缓存技术,对SVG地图数据库数据进行同步,从而满足地图动态引擎高频繁的数据读取。
S102、利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息;
具体的,参见图3,为本实施例提供的地图数据增量式数据构建过程示意图;对数据获取请求进行解析后,可以获取请求参数,根据参数中的地图编号从数据缓存池中获取SVG地图根节点信息、地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息;并根据地图比例尺、地图中心点及地图范围,计算并更新SVG根节点中ViewBox视窗范围属性。
S103、利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息;
具体的,参见图3,对数据获取请求进行解析后,可以获取请求参数,根据参数中的地图编号获取从数据缓存池中获取地图区域类元素,并通过射线法判断地图中心点与地图区域最大外接多边形关系,当点在多边形内或点到多边形顶点最近欧式距离不大于地图范围时,记录相应地图区域类元素及相应图层,从而实现对SVG地图区域类元素的筛选。
S104、利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息;
具体的,参见图3,对数据获取请求进行解析后,可以获取请求参数,根据参数中的地图编号获取从数据缓存池中获取地图POI类元素,并计算点与POI中心点之间欧式距离,记录距离不大于地图范围的地图POI类元素、相应图层及引用的图标库,从而实现对SVG地图POI(兴趣点)类元素的筛选。需要说明的是,为了提高数据的处理速度,本实施例中的S102-S104可以并行处理。
S105、将所述第二地图基本信息、所述第二地图区域类元素信息以及所述第二地图POI类元素信息,按照SVG地图数据结构进行数据组织,生成SVG地图数据;
S106、将所述SVG地图数据发送至所述应用层,以便所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载。
具体的,根据S102-S104中最终获取的地图基本信息、地图区域类元素信息、地图POI类元素信息,按照SVG地图数据结构定义进行数据拼接,得到SVG地图数据,并发送至应用层,从而使应用层根据返回的SVG地图数据及本地缓存数据进行地图数据的加载,由于SVG地图数据为增量地图数据,所以应用层执行加载渲染操作时,均是局部加载及渲染,因此可以保障地图数据获取和地图渲染的及时响应,使用户体验流畅。
需要说明的是,本方案中SVG地图数据结构的设计能够满足多源地图数据至SVG地图数据的标准化转换、SVG地图数据的分层级存储、SVG地图数据的增量式动态构建,并方便应用层解析渲染。同时,SVG地图数据结构严格遵循SVG规范,可被当前主流浏览器的较新版本(IE、Chrome、Firefox等)直接解析、显示。
参见图4,为本实施例提供的SVG地图数据结构,具体包括:SVG地图根节点、地图名称节点、地图描述节点、地图边界节点、参考坐标系转换参数节点、平面坐标系转换参数节点、POI(兴趣点)图标引用库节点、地图元素信息节点。下面对主要节点进行说明:
1)SVG根节点:既包括地图基础数据,如地图编号、地图范围、地图真北方向;又包括SVG规范属性,如命名空间、视窗范围;
2)地图边界节点:描述地图范围,采用SVG面状元素表达,包括path闭合路径(线段、曲线)包围的面、rect矩形、polygon多边形、circle圆、ellipse椭圆;
3)参考坐标系转换参数节点:SVG地图采用的是屏幕坐标系,以画布左上角为原点,右向为x轴,下向为y轴,像素为坐标单位;参考坐标系是以地图西南角为原点,东向为x轴,北向为y轴;参考坐标系转换参数是指地图使用的屏幕坐标系与其相应的参考坐标系之间的转换参数;
4)平面坐标系转换参数节点:平面坐标系是地图数据的多源数据的坐标基准,包括国家平面坐标系、城市平面坐标系或某区域施工坐标系等;平面坐标系转换参数是指地图使用的参考坐标系与数据源的平面坐标系之间的转换参数;
5)POI图标引用库节点:地图用到的表示兴趣点位信息的图标示例,通过SVG元素定义待引用的图标元素;
6)地图元素信息节点:包括表示点类信息的POI元素和表示面类信息的区域元素,均分图层进行表达,其中高优先级图层叠加到低优先级图层之上;POI元素叠加到区域元素之上。
基于上述实施例,在本实施例中,所述利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息,包括:
利用所述基础参数中的地图编号,从数据缓存池中获取第一地图基本信息;所述第一地图基本信息包括:SVG地图根节点信息、地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息;
利用所述基础参数中的地图比例尺、地图中心点及地图范围,计算并更新所述SVG地图根节点信息中的ViewBox视窗范围属性;
根据更新后的SVG地图根节点信息,以及所述地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息生成第二地图基本信息。
具体的,在本实施例中,从数据缓存池中获取第一地图基本信息具体包括SVG地图根节点信息、地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息;在此之中,需要更新SVG根节点的相应属性,即需要更新ViewBox视窗范围属性。
在本方案中,记ViewBox视窗范围为(X,Y,Width,Height),地图比例尺为1:Dscale(表示前端操作地图后1m表示Dscale个像素),地图平面坐标系转换参数scale,地图中心点M(Xm,Ym),地图范围(W,H)。
首先计算地图缩放系数:s=Dscale/scale,则s低于1时表示地图缩小,s高于1时表示地图放大。然后计算SVG地图的ViewBox属性,具体的计算公式如下:
基于上述实施例,在本实施例中,所述利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息,包括:
利用所述地图编号,从所述数据缓存池中获取第一地图区域类元素信息;
通过射线法判断所述第一地图区域类元素信息中的每个元素是否满足第一筛选条件,将所有满足所述第一筛选条件的元素组成第二地图区域类元素信息;
其中,满足所述第一筛选条件的第一目标元素为:所述地图中心点在所述第一目标元素的最大多边形内,或者,所述地图中心点至所述最大多边形的最小欧式距离不大于所述地图中心点至所述地图范围的最大欧式距离。
具体的,在本实施例中,从数据缓存池中获取第一地图区域类元素后,需要对元素进行筛选,记地图区域类元素集合为R,对集合R中元素处理方法具体如下:
参见图5,为本实施例提供的区域元素示意图;在本实施例中,记Rn为R中某区域元素,计算其最大外界多边形Rnb;记地图中心点M(Xm,Ym)与视窗范围(W,H)所组成矩形顶点之间的最大欧式距离Dm。根据射线法判断M与Rnb之间关系,若M在Rnb内,例如:图5中中心点在区域元素2的区域内,则记录Rn;若M不在Rnb内,例如:图5中中心点不在区域元素1的区域内,则计算M到区域元素1Rnb各个顶点之间的欧式距离,得最小欧式距离Dr,若Dr≤Dm,则记录Rn。并继续对R中元素逐一进行处理,筛选处符合Rn条件的区域元素集Rns,也即第二地图区域类元素信息。
基于上述实施例,在本实施例中,所述利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息,包括:
利用所述地图编号,从所述数据缓存池中获取第一地图POI类元素信息;
判断所述第一地图POI类元素信息中的每个元素是否满足第二筛选条件,将所有满足所述第二筛选条件的元素组成第二地图POI类元素信息;
其中,满足所述第二筛选条件的第二目标元素为:所述第二目标元素的中心点至所述地图中心点的欧氏距离不大于所述地图中心点至所述地图范围的最大欧式距离。
具体的,在本实施例中,从数据缓存池中获取第一地图POI类元素信息后,需要对元素进行筛选,记地图POI类元素集合为P,对集合P中元素处理方法具体如下:
记Pn为P中某POI元素,其中心点为Pm;记地图中心点M(Xm,Ym)与视窗范围(W,H)所组成矩形顶点之间的最大欧式距离Dm。计算Pm与M之间欧式距离Dpm,若Dpm≤Dm,则记录Pn。对P中元素逐一进行处理,筛选处符合Pn条件的区域元素集Pns,即为第二地图POI类元素。进而根据上述定义的SVG地图数据结构,根据生成Xml文档方式,通过第二地图基本信息、第二地图区域类元素信息以及第二地图POI类元素信息,构建完整的SVG地图数据。其中,根据计算的ViewBox值,需要更新SVG根节点相应属性;筛选的地图区域类元素及地图POI类元素,生成地图元素信息节点子节点、POI图标引用库节点。
基于上述实施例,在本实施例中,接收应用层发送的携带基础参数的数据获取请求之前,还包括:
应用层判断用户本次操作是否为初次操作;
若是,则发送第一数据获取请求;所述第一数据获取请求中携带的基础参数为初始基础参数;若否,则判断用户本次操作是否为缩放/平移操作;
若所述用户本次操作为缩放/平移操作,则根据本地缓存数据判断视窗边界处是否满足预定检测规则;若满足,则所述应用层直接根据本地缓存数据进行地图数据的加载;
若不满足,则发送第二数据获取请求;所述第二数据获取请求中携带的基础参数为与所述用户本次操作对应的基础参数。
其中,所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载,包括:
应用层将所述SVG地图数据及本地缓存数据取并集,并更新本地存储的地图数据,加载并显示更新后的地图数据。
需要说明的是,应用层地图数据加载方法是应用层高效加载地图的核心,参见图6,为本实施例提供的应用层地图数据加载过程示意图;具体来说:
1)应用层需要根据用户操作判断是否初次加载地图,若是初次加载地图,则构造初始化地图数据请求参数:地图编号、初始点位(默认通过异步请求逻辑层服务获取地图中心点)、地图范围(默认2倍视窗可显示范围)、地图默认比例尺;进入3)异步请求地图增量数据流程;
2)若非初次加载地图,则根据用户操作判断是否缩放/平移地图,若进行了此类操作,则首先根据地图缓存的数据进行边界检测,判断视窗边界处是否有地图数据(默认是在不超出地图最大边界情况下,在2倍视窗边界处有相交的地图区域元素或POI元素),若无地图数据,则根据用户操作结果构造地图请求参数,进入3)异步请求地图增量数据流程;若有地图数据则进入4)局部渲染地图数据步骤;
3)根据1)或2)的地图数据请求参数,向逻辑层异步请求地图增量数据,获得请求数据结果后,取本地缓存结果和请求数据结果并集,然后更新本地存储的地图数据;然后进入4)局部渲染地图数据步骤;
4)局部渲染地图数据是根据缓存的地图数据,渲染2倍视窗范围内的地图数据,并隐藏或删除范围之外数据;应用层在渲染时分为两种方式:a)应用层支持SVG标准(如主流浏览器),可直接显示地图数据;b)应用层不支持SVG标准(如移动APP、PC应用)则需要根据SVG地图数据定义,自主解析、渲染、显示地图数据。
综上可以看出,本发明提供的一种在大数据量条件下SVG格式矢量地图的高效加载方法,通过首先建立适用于地图动态构建的SVG地图数据格式标准,根据确立的标准对多种来源的地图基础数据以标准化格式分层次存储至数据库;其次建立地图增量数据的动态构建机制,搭建地图动态构建引擎,根据一定条件在SVG地图数据缓存池中筛选出地图数据,并按照定义的SVG地图格式标准组织数据并返回给应用层;最后依靠应用层建立的增量式地图数据缓存及地图局部渲染机制,把通过用户操作所获取的的增量式地图数据请求结果,与本地缓存结果取并集,然后缓存起来,并根据缓存结果,局部渲染地图数据。
在这一过程中,通过标准化的SVG地图数据格式,满足了多种场景下数据交互的规范约束和参照;增量式的地图数据加载模式,使得大量地图数据的加载效率更高;局部地图数据渲染模式,满足视窗范围内地图数据的显示和流程操作需要,同时减轻了大量地图数据的渲染显示压力,并且可应用于多端,包括浏览器、移动APP、PC应用,从而保障地图数据获取和地图渲染的及时响应,使用户体验流畅。
下面对本发明实施例提供的加载装置进行介绍,下文描述的加载装置与上文描述的加载装置可以相互参照。
本发明实施例提供的一种SVG地图数据的加载装置,包括:
接收模块,用于接收应用层发送的携带基础参数的数据获取请求;
第二地图基本信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息;
第二地图区域类元素信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息;
第二地图POI类元素信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息;
SVG地图数据生成模块,用于将所述第二地图基本信息、所述第二地图区域类元素信息以及所述第二地图POI类元素信息,按照SVG地图数据结构进行数据组织,生成SVG地图数据;
SVG地图数据发送模块,用于将所述SVG地图数据发送至所述应用层,以便所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载。
其中,本方案还包括:
数据获取模块,用于从多源地图数据中提取目标地图数据,并将所述目标地图数据按照所述SVG地图数据结构更新至SVG地图数据库;
数据更新模块,用于将更新后的SVG地图数据库同步更新至所述数据缓存池。
其中,第二地图基本信息确定模块包括:
第一数据获取单元,用于利用所述基础参数中的地图编号,从数据缓存池中获取第一地图基本信息;所述第一地图基本信息包括:SVG地图根节点信息、地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息;
更新单元,用于利用所述基础参数中的地图比例尺、地图中心点及地图范围,计算并更新所述SVG地图根节点信息中的ViewBox视窗范围属性;
生成单元,用于根据更新后的SVG地图根节点信息,以及所述地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息生成第二地图基本信息。
其中,第二地图区域类元素信息确定模块包括:
第二数据获取单元,用于利用所述地图编号,从所述数据缓存池中获取第一地图区域类元素信息;
第一筛选单元,用于通过射线法判断所述第一地图区域类元素信息中的每个元素是否满足第一筛选条件,将所有满足所述第一筛选条件的元素组成第二地图区域类元素信息;
其中,满足所述第一筛选条件的第一目标元素为:所述地图中心点在所述第一目标元素的最大多边形内,或者,所述地图中心点至所述最大多边形的最小欧式距离不大于所述地图中心点至所述地图范围的最大欧式距离。
其中,第二地图POI类元素信息确定模块包括:
第三数据获取单元,用于利用所述地图编号,从所述数据缓存池中获取第一地图POI类元素信息;
第二筛选单元,用于判断所述第一地图POI类元素信息中的每个元素是否满足第二筛选条件,将所有满足所述第二筛选条件的元素组成第二地图POI类元素信息;
其中,满足所述第二筛选条件的第二目标元素为:所述第二目标元素的中心点至所述地图中心点的欧氏距离不大于所述地图中心点至所述地图范围的最大欧式距离。
其中,所述接收模块具体用于:
接收负载均衡单元通过加权轮训方式发送的数据获取请求。
基于上述任意实施例,本实施例还公开了一种SVG地图数据的加载系统,包括服务器及应用层:
所述应用层用于向所述服务器发送携带基础参数的数据获取请求;并根据所述服务器发送的SVG地图数据及本地缓存数据进行地图数据的加载;
所述服务器,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述SVG地图数据的加载方法的步骤。
其中,应用层还用于:应用层判断用户本次操作是否为初次操作;
若是,则发送第一数据获取请求;所述第一数据获取请求中携带的基础参数为初始基础参数;若否,则判断用户本次操作是否为缩放/平移操作;
若所述用户本次操作为缩放/平移操作,则根据本地缓存数据判断视窗边界处是否满足预定检测规则;若满足,则所述应用层直接根据本地缓存数据进行地图数据的加载;
若不满足,则发送第二数据获取请求;所述第二数据获取请求中携带的基础参数为与所述用户本次操作对应的基础参数。
其中,应用层具体用于:将所述SVG地图数据及本地缓存数据取并集,并更新本地存储的地图数据,加载并显示更新后的地图数据。
本实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述SVG地图数据的加载方法的步骤。
具体的,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种SVG地图数据的加载方法,其特征在于,包括:
接收应用层发送的携带基础参数的数据获取请求;
利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息;
利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息;
利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息;
将所述第二地图基本信息、所述第二地图区域类元素信息以及所述第二地图POI类元素信息,按照SVG地图数据结构进行数据组织,生成SVG地图数据;
将所述SVG地图数据发送至所述应用层,以便所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载;
其中,所述利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息,包括:
利用所述基础参数中的地图编号,从数据缓存池中获取第一地图基本信息;所述第一地图基本信息包括:SVG地图根节点信息、地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息;
利用所述基础参数中的地图比例尺、地图中心点及地图范围,计算并更新所述SVG地图根节点信息中的ViewBox视窗范围属性;
根据更新后的SVG地图根节点信息,以及所述地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息生成第二地图基本信息。
2.根据权利要求1所述的加载方法,其特征在于,还包括:
从多源地图数据中提取目标地图数据,并将所述目标地图数据按照所述SVG地图数据结构更新至SVG地图数据库;
将更新后的SVG地图数据库同步更新至所述数据缓存池。
3.根据权利要求2所述的加载方法,其特征在于,所述SVG地图数据结构包括:
SVG地图根节点、地图名称节点、地图描述节点、地图边界节点、参考坐标系转换参数节点、平面坐标系转换参数节点、POI图标引用库节点、地图元素信息节点。
4.根据权利要求1所述的加载方法,其特征在于,所述利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息,包括:
利用所述地图编号,从所述数据缓存池中获取第一地图区域类元素信息;
通过射线法判断所述第一地图区域类元素信息中的每个元素是否满足第一筛选条件,将所有满足所述第一筛选条件的元素组成第二地图区域类元素信息;
其中,满足所述第一筛选条件的第一目标元素为:所述地图中心点在所述第一目标元素的最大多边形内,或者,所述地图中心点至所述最大多边形的最小欧式距离不大于所述地图中心点至所述地图范围的最大欧式距离。
5.根据权利要求4所述的加载方法,其特征在于,所述利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息,包括:
利用所述地图编号,从所述数据缓存池中获取第一地图POI类元素信息;
判断所述第一地图POI类元素信息中的每个元素是否满足第二筛选条件,将所有满足所述第二筛选条件的元素组成第二地图POI类元素信息;
其中,满足所述第二筛选条件的第二目标元素为:所述第二目标元素的中心点至所述地图中心点的欧氏距离不大于所述地图中心点至所述地图范围的最大欧式距离。
6.根据权利要求1所述的加载方法,其特征在于,所述接收应用层发送的携带基础参数的数据获取请求,包括:
接收负载均衡单元通过加权轮训方式发送的数据获取请求。
7.根据权利要求1至6中任意一项所述的加载方法,其特征在于,接收应用层发送的携带基础参数的数据获取请求之前,还包括:
应用层判断用户本次操作是否为初次操作;
若是,则发送第一数据获取请求;所述第一数据获取请求中携带的基础参数为初始基础参数;若否,则判断用户本次操作是否为缩放/平移操作;
若所述用户本次操作为缩放/平移操作,则根据本地缓存数据判断视窗边界处是否满足预定检测规则;若满足,则所述应用层直接根据本地缓存数据进行地图数据的加载;
若不满足,则发送第二数据获取请求;所述第二数据获取请求中携带的基础参数为与所述用户本次操作对应的基础参数。
8.根据权利要求7所述的加载方法,其特征在于,所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载,包括:
应用层将所述SVG地图数据及本地缓存数据取并集,并更新本地存储的地图数据,加载并显示更新后的地图数据。
9.一种SVG地图数据的加载装置,其特征在于,包括:
接收模块,用于接收应用层发送的携带基础参数的数据获取请求;
第二地图基本信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图基本信息,并对所述第一地图基本信息中的ViewBow视窗范围属性进行更新,得到第二地图基本信息;
第二地图区域类元素信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图区域类元素信息,并进行元素筛选后得到第二地图区域类元素信息;
第二地图POI类元素信息确定模块,用于利用所述基础参数从数据缓存池中获取第一地图POI类元素信息,并进行元素筛选后得到第二地图POI类元素信息;
SVG地图数据生成模块,用于将所述第二地图基本信息、所述第二地图区域类元素信息以及所述第二地图POI类元素信息,按照SVG地图数据结构进行数据组织,生成SVG地图数据;
SVG地图数据发送模块,用于将所述SVG地图数据发送至所述应用层,以便所述应用层根据所述SVG地图数据及所述应用层本地缓存数据进行地图数据的加载;
其中,第二地图基本信息确定模块包括:
第一数据获取单元,用于利用所述基础参数中的地图编号,从数据缓存池中获取第一地图基本信息;所述第一地图基本信息包括:SVG地图根节点信息、地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息;
更新单元,用于利用所述基础参数中的地图比例尺、地图中心点及地图范围,计算并更新所述SVG地图根节点信息中的ViewBox视窗范围属性;
生成单元,用于根据更新后的SVG地图根节点信息,以及所述地图名称节点信息、地图描述节点信息、参考坐标系转换参数节点信息、平面坐标系转换参数节点信息生成第二地图基本信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711307512.2A CN107992589B (zh) | 2017-12-11 | 2017-12-11 | 一种svg地图数据的加载方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711307512.2A CN107992589B (zh) | 2017-12-11 | 2017-12-11 | 一种svg地图数据的加载方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107992589A CN107992589A (zh) | 2018-05-04 |
CN107992589B true CN107992589B (zh) | 2021-07-09 |
Family
ID=62035666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711307512.2A Active CN107992589B (zh) | 2017-12-11 | 2017-12-11 | 一种svg地图数据的加载方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107992589B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776669B (zh) * | 2018-05-07 | 2024-01-09 | 平安科技(深圳)有限公司 | 地图显示方法、装置、计算机设备和存储介质 |
CN109191576B (zh) * | 2018-09-06 | 2023-02-10 | 连进建筑科技有限公司 | 一种将建筑图纸转换为三维bim模型的图层分类方法 |
CN112860834A (zh) * | 2021-02-05 | 2021-05-28 | 深圳力维智联技术有限公司 | 一种基于webgis的第三方地图对接装置和方法 |
CN112882635A (zh) * | 2021-02-10 | 2021-06-01 | 南京苏宁软件技术有限公司 | 流程数据处理方法、装置、计算机设备和存储介质 |
CN113515584B (zh) * | 2021-07-13 | 2023-11-24 | 禾多阡陌科技(北京)有限公司 | 局部地图数据分发方法、装置、电子设备和介质 |
CN115794539B (zh) * | 2022-09-20 | 2023-09-01 | 北京世纪国源科技股份有限公司 | 时空数据api服务的日志增量式监控方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945578A (zh) * | 2006-08-26 | 2007-04-11 | 福州开睿动力通信科技有限公司 | 一种基于空间数据库和SVG的高速Web电子地图的生成及应用方法 |
CN104103211A (zh) * | 2013-04-09 | 2014-10-15 | 广东美晨通讯有限公司 | 室内电子地图的构建方法及系统 |
CN104507047A (zh) * | 2014-12-15 | 2015-04-08 | 福建星网锐捷网络有限公司 | 一种poi区域获取方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7542846B2 (en) * | 2006-02-07 | 2009-06-02 | Alpine Electronics, Inc. | Navigation system utilizing XML/SVG map data converted from geographic map data and layered structure of XML/SVG map data based on administrative regions |
US9367959B2 (en) * | 2012-06-05 | 2016-06-14 | Apple Inc. | Mapping application with 3D presentation |
-
2017
- 2017-12-11 CN CN201711307512.2A patent/CN107992589B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945578A (zh) * | 2006-08-26 | 2007-04-11 | 福州开睿动力通信科技有限公司 | 一种基于空间数据库和SVG的高速Web电子地图的生成及应用方法 |
CN104103211A (zh) * | 2013-04-09 | 2014-10-15 | 广东美晨通讯有限公司 | 室内电子地图的构建方法及系统 |
CN104507047A (zh) * | 2014-12-15 | 2015-04-08 | 福建星网锐捷网络有限公司 | 一种poi区域获取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107992589A (zh) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992589B (zh) | 一种svg地图数据的加载方法、装置及系统 | |
KR101494844B1 (ko) | 메타 데이터를 이용한 차트 변환 시스템 및 그 방법 | |
CN110675728B (zh) | 热力图的生成方法、装置、设备及计算机可读存储介质 | |
US20130326333A1 (en) | Mobile Content Management System | |
CN110969691B (zh) | 基于WebGL的摄影数据调度方法及系统 | |
US9697751B2 (en) | Interactive representation of clusters of geographical entities | |
US20240087228A1 (en) | Method for scheduling and displaying three-dimensional annotations | |
CN112256790A (zh) | 基于WebGL的三维可视化展现系统及数据可视化方法 | |
CN104090769B (zh) | 一种业务数据的图形展示方法和装置 | |
CN105550247A (zh) | 基于svg标准可自定义图符的电力系统图形显示方法 | |
CN111611518A (zh) | 基于Html5的可视化展示页面自动发布方法及系统 | |
Singh et al. | Web 3D GIS application for flood simulation and querying through open source technology | |
Deibe et al. | Supporting multi-resolution out-of-core rendering of massive LiDAR point clouds through non-redundant data structures | |
CN103839479A (zh) | 一种高效电子地图注记交互方法 | |
CN111046306A (zh) | 一种浏览器动态展示就业信息分析结果图表的方法 | |
Eriksson et al. | An in-depth analysis of dynamically rendered vector-based maps with WebGL using Mapbox GL JS | |
US10067950B1 (en) | Systems and methods for efficiently organizing map styling information | |
Arroyo Ohori | azul: A fast and efficient 3D city model viewer for macOS | |
CN107885840A (zh) | 城市信息模型服务方法及系统 | |
CN113850884A (zh) | 桑基图的生成方法、装置、电子设备和存储介质 | |
CN117131297B (zh) | 一种基于浏览器的地理信息数据的快速发布方法 | |
Guney | Rethinking GIS towards the vision of smart cities through CityGML | |
Agugiaro et al. | 7.2 3D GIS for cultural heritage sites: The queryarch3d prototype | |
CN116737852A (zh) | 一种基于矢量瓦片数据的矢量绘图方法、装置和电子设备 | |
CN114119816A (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 |