买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于Openlayers快速加载不同数量级数据的处理方法_武汉烽火众智智慧之星科技有限公司_201811504603.X 

申请/专利权人:武汉烽火众智智慧之星科技有限公司

申请日:2018-12-10

公开(公告)日:2022-04-05

公开(公告)号:CN109710219B

主分类号:G06F8/20(20180101)

分类号:G06F8/20(20180101)

优先权:

专利状态码:有效-授权

法律状态:2022.04.05#授权;2019.05.28#实质审查的生效;2019.05.03#公开

摘要:本发明涉及一种基于Openlayers快速加载不同数量级数据的处理方法,包括:根据Openlayers加载不同数量级数据的流畅度,将数据分为轻量级、中量级和重量级,当数据为轻量级时,直接使用Openlayers一次性将数据加载和聚合,所有对数据的操作都在前台进去处理;当数据为中量级时,每次只让Openlayers加载当前视窗的数据,地图在进行移动时进行数据的重新加载,一部分的数据操作在前台处理,一部分数据操作在后台处理,当数据为重量级时,将数据导入到空间数据库中,使用地图服务发布引擎发布成瓦片进行调用,当需要对数据进行操作时,对数据进行操作时完全由后台与前台进行互动才能完成。本发明使浏览器终端流畅的加载数据而不卡顿。

主权项:1.一种基于Openlayers快速加载不同数量级数据的处理方法,其特征在于,包括如下步骤:1根据Openlayers加载不同数量级数据的流畅度和后台获取数据的流畅度,预先将数据数量级别分为轻量级、中量级、重量级;2)当数据的数量级为轻量级时,采用如下处理方法,其步骤包括:后台将所有的数据都返回给前台,前台将数据加载并保存;在前台进行数据的操作;3)当数据的数量级为中量级时,采用如下处理方法,其步骤包括:后台将用户终端当前视窗范围的数据返回给前台,前台将数据加载并保存;对当前视窗数据进行操作时,则由前台单独处理,否则,由前台和后台一起配合处理;4)当数据的数量级为重量级时,采用如下处理方法,其步骤包括:将数据放入空间数据库进行存储并使用支持该空间数据库的地图发布引擎进行地图瓦片服务的发布;使用Openlayersapi加载该地图服务进行展示;对数据进行操作时需要后台与前台进行互动才能完成。

全文数据:一种基于Openlayers快速加载不同数量级数据的处理方法技术领域本发明属于数据处理技术领域,尤其涉及一种基于Openlayers快速加载不同数量级数据的处理方法。背景技术随着硬件的发展和IT技术的不断进步,GISGeographicInformationSystem,地理信息系统这门综合技术系统通过WEB功能得到扩展,让GIS真正的服务于大众,而WEBGIS作为Internet和GIS结合的产物,也促进了GIS的发展。WEBGIS现在包含有GIS软件大部分的功能,而且利用其BS模式的优势,即用户不需要在自己的终端计算机上安装客户端,利用浏览器终端就可以自如的运用各种GIS功能和数据。WEBGIS通过互联网对地理空间数据进行发布和应用,以此来实现数据的共享,其特点是采用多主机多数据库进行分布式部署,因此WebGIS具有良好的可扩展性和跨平台性。然而目前,技术人员在直接使用Openlayers3专为WebGIS客户端开发提供的Javascript类库和其他WEBGIS框架进行GIS功能开发时,根据不同级别的项目需求,有可能有的项目中1000+级别的数据,有的项目重视1W+级别的数据,有的项目中有10W+级别的数据。而Openlayers3加载数据是开发人员给予多少数据就加载多少数据,而不是自动批量加载。所以这个时候就需要在保持Openlayers3加载数据流畅度的情况下做出不同方式的处理,因为只有针对不同量级的数据有不同的处理方式,才能减少开发人员的开发量和维护量,进而控制项目成本。发明内容本发明的目的在于克服现有技术之缺陷,提供了一种基于Openlayers快速加载不同数量级数据的处理方法,目的是为在不同级别的项目中面对不同级别的数据量时,Openlayers能够流畅的加载数据而不卡顿,且达到减少开发人员在经历不同项目时的开发量和后期的代码维护量,进而降低项目成本。本发明是这样实现的:本发明提供一种基于Openlayers快速加载不同数量级数据的处理方法,包括如下步骤:1根据Openlayers加载不同数量级数据的流畅度和后台获取数据的流畅度,预先将数据数量级别分为轻量级、中量级、重量级;2当数据的数量级为轻量级时,采用如下处理方法,其步骤包括:后台将所有的数据都返回给前台,前台将数据加载并保存;在前台进行数据的操作;3当数据的数量级为中量级时,采用如下处理方法,其步骤包括:后台将用户终端当前视窗范围的数据返回给前台,前台将数据加载并保存;对当前视窗数据进行操作时,则由前台单独处理,否则,由前台和后台一起配合处理;4当数据的数量级为重量级时,采用如下处理方法,其步骤包括:将数据放入空间数据库进行存储并使用支持该空间数据库的地图发布引擎进行地图瓦片服务的发布;使用Openlayersapi加载该地图服务进行展示;对数据进行操作时需要后台与前台进行互动才能完成。进一步地,步骤2中使用后台接口一次性获取所有数据到前台;使用Openlayers加载后台接口传递给前台的数据。进一步地,步骤3使用Openlayersapi获取当前视窗范围通过后台接口传递给后台,并获取后台接口返回给前台的当前视窗范围的数据,使用Openlayers加载后台接口返回给前台的数据;每次地图移动时重复上述步骤。进一步地,步骤3空间查询数据时在前台进行交互,属性查询时需要与后台进行数据交互。进一步地,步骤4中每次地图移动时,前台重新请求地图的瓦片。进一步地,将中量级预先分为第一中量级和第二中量级,当数据的级别位于第一中量级时,后台将用户终端当前视窗范围的数据返回给前台,前台将数据进行聚合、加载、缓存以用作包括查询在内的其他处理;当数据的级别位于第二中量级即靠近重量级时,后台将用户终端当前视窗范围的数据在后台进行聚合后返回给前台,前台将数据进行加载、缓存以用作包括查询在内的其他处理。当地图zoom级别比较小时采用聚合便于展示。进一步地:聚合的算法采用取坐标平均值。与现有技术相比,本发明具有以下有益效果:本发明根据Openlayers加载不同数量级数据的流畅度,将数据数量级别分为轻量级、中量级和重量级,同此解决方案也划分为轻量级、中量级和重量级;轻量级解决方案包括以下步骤:使用后台接口获取所有数据;使用Openlayers加载后台接口传递给前台的数据;在前台进行数据的操作比如空间查询、属性展示等。中量级解决方案包括以下步骤:使用Openlayersapi获取当前视窗范围传递给后台接口并获取当前视窗范围的数据,当级别的数据靠近重量级时可以考虑在后台进行聚合;使用Openlayers加载后台接口传递给前台的数据;在前台进行视窗数据的操作比如空间查询、属性展示,前台与后台配合进行对所有数据的操作比如属性查询等。重量级解决方案包括以下步骤:将数据导入到空间数据库并使用与该空间数据库匹配的地图发布引擎将数据发布成要素服务WFS并切成瓦片;使用Openlayers加载WFS地图服务,展示数据;前台与后台配合进行对数据的操作比如判断某点是否存在设备,需要前台将该点的经纬度传递给后台进行查询,存在则返回true,前台鼠标样式改变;不存在则返回false,前台鼠标样式不改变。由于本发明建立了上述针对不同数量级数据Openalyers能快速加载的解决方案,其能在不同的项目过程中,针对不同数量级的数据,给出相称的解决方案,避免在遇到轻量级数据时使用重量级的解决方式,不仅会增加项目实际成本,也增加开发人员的工作量和后期代码维护量,且在不同级别的项目中面对不同级别的数据量时,Openlayers能够流畅的加载数据而不卡顿。附图说明图1是本发明基于Openlayers加载不同数量级数据的轻量级解决方案过程图;图2是本发明基于Openlayers加载不同数量级数据的中量级解决方案过程图;图3是本发明基于Openlayers加载不同数量级数据的重量级解决方案过程图。具体实施方式下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明提供一种基于Openlayers快速加载不同数量级数据的处理方法,包括如下步骤:1根据Openlayers加载不同数量级数据的流畅度和后台获取数据的流畅度,预先将数据数量级别分为轻量级、中量级、重量级。如数据数量处于0-10000条时为轻量级,数据数量处于10000-50000条时为中量级,数据数量处于50000条以上时为重量级。根据Openlayers加载不同数量级数据的流畅度,在尽量减少前后台交互次数的前提下,后台取数据的方式和前台加载的方式也不一样。2当数据的数量级为轻量级时,采用如下处理方法,其步骤包括:后台将所有的数据都返回给前台,前台将数据加载并保存;在前台进行数据的操作。当数据为轻量级时,将所有数据全部给Openlayers加载显示,前台存储数据,所有对数据的操作都在前台进去处理比如查询等;这样做的好处是做搜索时不需要和后台进行交互,避免查询时受网络影响,而且地图平移时非常顺畅,地图不要另外进行数据的重新加载;坏处是数据会存储在前台。3当数据的数量级为中量级时,采用如下处理方法,其步骤包括:后台将用户终端当前视窗范围的数据返回给前台,前台将数据加载并缓存以用作查询及其他处理;对当前视窗数据进行操作时,则由前台单独处理,否则,由前台和后台一起配合处理。当数据为中量级时,每次只让Openlayers加载当前视窗的数据,地图在进行移动时进行数据的重新加载,一部分的数据操作在前台处理,即需要获取当前视窗数据的操作,一部分数据操作在后台处理,即需要获取所有数据的操作,当数据中量级偏大时,将数据在后台进行聚合。这样做的结果是每次地图的移动都需要去后台请求数据,空间查询数据可以在前台进行交互,属性查询时需要与后台进行数据交互。4当数据的数量级为重量级时,采用如下处理方法,其步骤包括:后台将数据放入导入空间数据库进行存储并使用支持该空间数据库的地图发布引擎进行地图服务的发布并将数据切成瓦片,使用Openlayersapi加载地图服务,展示数据;对数据进行操作时完全由后台与前台进行互动才能完成。当数据的量级为重量级时,利用PostAdmin+PostgreSQL或者其他空间数据库Mysql+ArcSDE进行数据的存储和管理,然后使用Geoserver或者其他地图数据发布引擎ArcGISServer发布成瓦片供调用。这样做的结果是每次地图的移动只是去请求地图的瓦片,非常快速,但是空间查询和属性查询需要进行大量的后台开发。进一步地,步骤2中使用后台接口一次性获取所有数据到前台;使用Openlayers加载后台接口传递给前台的数据。步骤3使用Openlayersapi获取当前视窗范围通过参数形式传递给后台,后台得到当前视窗范围后通过对数据库中经纬度的查询获取当前视窗范围的数据,并将获取的当前视窗范围的数据通过后台接口返回给前台,使用Openlayers加载后台接口返回给前台的数据;每次地图移动时重复上述步骤。进一步地,步骤3空间查询数据在前台进行交互,属性查询时需要与后台进行数据交互。进一步地,步骤4中每次地图移动时,前台重新请求地图的瓦片。进一步地,将中量级预先分为第一中量级和第二中量级,当数据的级别位于第一中量级时,后台将用户终端当前视窗范围的数据返回给前台,前台将数据进行聚合和加载、缓存以用作查询等其他处理;当数据的级别位于第二中量级即靠近重量级时,后台将用户终端当前视窗范围的数据在后台进行聚合后返回给前台,前台将数据进行加载和缓存以用作查询等其他处理。进一步地:聚合的算法采用取坐标平均值。本发明将解决方案分为不同量级的原则则是始终将当前视窗的数据量保持在轻量级,甚至是轻量级中靠前的数据量级。本发明的目的就是减少工作量和后期的维护量。且Openlayers3是使用canvas去展示地图,它会一次性将数据全部加载,所以该聚合时就聚合,而且要避免在一次性加载过多的数据,这样会造成用户使用时的极大困扰。实施例一如图1所示,本实施例提供一种基于Openlayers3的加载不同数量级数据的轻量级解决方案包括以下步骤:步骤1:GIS开发人员使用后台接口一次性获取所有数据到前台;步骤2:GIS开发人员将返回给前台的数据进行存储,并使用Openlayers3api的接口将获取到的数据加载设置聚合到地图上进行展示;步骤3:GIS开发人员根据存储在前台的数据对其进行操作而不需要再与后台进行任何互动。以上所述,该轻量级的解决方案的好处是后台存在任何关于GIS方面的代码,只需要做好数据提供者的角色即可;前台在后台提供完数据后完成不再与后台进行任何交互,对数据的操作也再前台进行,这样耦合就减少了很多,代码的复杂程度也很小。实施例二如图2所示,本实施例提供一种基于Openlayers3的加载不同数量级数据的中量级解决方案包括以下步骤:步骤1:GIS开发人员获取当前地图窗口的经纬度范围通过后台接口传递给后台并获取接口返回的当前范围的数据,当该级别的数据靠近重量级时,还可以在后台进行数据的聚合,聚合的算法可以取坐标平均值;步骤2:GIS开发人员将获取到的数据进行存储,并使用Openlayers3api的接口将获取到的数据加载假如后台聚合则前台不进行聚合操作到地图上进行展示,此处后台与前台耦合程度已经较高,特别是当在后台进行数据聚合时,前台的数据加载和展示也会因后台接口修改而修改;步骤3:GIS开发人员对数据进行操作,当只需要对当前窗口数据进行操作时,只需要编写前台代码,而不需要与后台进行交互,当需要对所有数据进行访问时,就需要前台与后台的交互才能完成。以上所属,该中量级的解决方案前台和后台已经处于比较耦合的状态,但是Openlayers3每次还是只会加载少量的数据而变成非常流畅。实施例三如图3所示,本实施例提供一种基于Openlayers3的加载不同数量级数据的重量级解决方案包括以下步骤:步骤1:GIS开发人员将数据放入空间数据库进行存储并使用支持该空间数据库的地图发布引擎进行地图服务的发布,将该图层数据发布成WFS地图服务;步骤2:GIS开发人员使用Openlayers3api加载WFS地图服务,完成该图层数据的加载显示;步骤3:GIS开发人员对数据进行操作,此时则完全需要后台和前台进行互动才能完成操作。比如完成鼠标放在设备图标上鼠标样式改变的功能:首先GIS开发人员需要将鼠标移动的经纬度通过接口传递给后台进行查询,后台代码首先要添加对空间数据库的支持,完成后则使用该空间数据库的接口传入为经纬度参数来进行数据查询,存在则返回true给前台,不存在则返回给false给前台,这样前台就可以根据后台的返回来决定是否改变鼠标的样式,用户使用时就可以看到鼠标样式的改变与否。以上所属,该重量级的解决方案前台和后台已经处于高度耦合的状态,而且对数据增删改查、比较都需要按照空间数据库的方式来进行,这样后台的GIS代码复杂程度会比较高,前后台的GIS维护也需要很大的工作量。同样这样处理后Openlayers3加载数据也会非常流畅,因为它是在加载图片而不需要进行任何处理。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

权利要求:1.一种基于Openlayers快速加载不同数量级数据的处理方法,其特征在于,包括如下步骤:1根据Openlayers加载不同数量级数据的流畅度和后台获取数据的流畅度,预先将数据数量级别分为轻量级、中量级、重量级;2当数据的数量级为轻量级时,采用如下处理方法,其步骤包括:后台将所有的数据都返回给前台,前台将数据加载并保存;在前台进行数据的操作;3当数据的数量级为中量级时,采用如下处理方法,其步骤包括:后台将用户终端当前视窗范围的数据返回给前台,前台将数据加载并保存;对当前视窗数据进行操作时,则由前台单独处理,否则,由前台和后台一起配合处理;4当数据的数量级为重量级时,采用如下处理方法,其步骤包括:将数据放入空间数据库进行存储并使用支持该空间数据库的地图发布引擎进行地图瓦片服务的发布;使用Openlayersapi加载该地图服务进行展示;对数据进行操作时需要后台与前台进行互动才能完成。2.根据权利要求1所述的方法,其特征在于:步骤2中使用后台接口一次性获取所有数据到前台;使用Openlayers加载后台接口传递给前台的数据。3.根据权利要求1所述的方法,其特征在于:步骤3使用Openlayersapi获取当前视窗范围通过后台接口传递给后台,并获取后台接口返回给前台的当前视窗范围的数据,使用Openlayers加载后台接口返回给前台的数据;每次地图移动时重复上述步骤。4.根据权利要求1所述的方法,其特征在于:步骤3空间查询数据在前台进行交互,属性查询时需要与后台进行数据交互。5.根据权利要求1所述的方法,其特征在于:步骤4中每次地图移动时,前台重新请求地图的瓦片。6.根据权利要求1所述的方法,其特征在于:将中量级预先分为第一中量级和第二中量级,当数据的级别位于第一中量级时,后台将用户终端当前视窗范围的数据返回给前台,前台将数据进行聚合、加载、缓存以用作包括查询在内的其他处理;当数据的级别位于第二中量级即靠近重量级时,后台将用户终端当前视窗范围的数据在后台进行聚合后返回给前台,前台将数据进行加载、缓存以用作包括查询在内的其他处理。7.根据权利要求1所述的方法,其特征在于:聚合的算法采用取坐标平均值。

百度查询: 武汉烽火众智智慧之星科技有限公司 一种基于Openlayers快速加载不同数量级数据的处理方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。